2016-11-10 29 views
0

我的文档:

{ 
    "_id" : ObjectId("5824a9472e94e0995d3b0f0c"), 
    "full_name" : "Kelly Denise Benavides", 
    "aliases" : [ 
     "Kelly D Benavides", 
     "Kelly Benavides" 
    ] 
} 

我想搜索文件,如果用户输入“凯利d贝纳维德斯”返回文档。我曾尝试使用:

$person = Person::where('aliases', 'Kelly D Benavides')->first(); 

我相信这样做的正确方法是使用elemMatch但语法不明确。任何指针?

回答

1

方法#01

db.collection.find(
    { aliases: { $elemMatch: { "Kelly D Benavides" } } } 
) 

方法#02

db.collection.find({"aliases":{$elemMatch:{"$in":["Kelly D Benavides"], "$exists":true}}}) 


Person::where('aliases', 'elemMatch', array('Kelly D Benavides'))->first(); 

Person::where('aliases', 'all', ['Kelly D Benavides'])->first(); 
+0

感谢。 db.collection.find({“aliases”:{$ elemMatch:{“$ in”:[“Kelly D Benavides”],“$ exists”:true}}})很好。但是,当我尝试做Person ::其中('别名','elemMatch',数组('凯利D贝纳维兹')) - >第一();它说'$ elemMatch需要一个对象' – kratos

相关问题