如何使用jenssegers / laravel-mongodb在嵌入式阵列上使用$ elemMatch?

时间:2016-11-10 17:33:58

标签: php mongodb laravel

我的文件:

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

如果用户输入了Kelly D Benavides'我想要搜索文档并返回文档。我尝试过使用:

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

我认为正确的方法是使用elemMatch但不清楚语法。有什么指针吗?

1 个答案:

答案 0 :(得分: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();