2016-11-10 28 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

相關問題