php 如何使用jensegers/laravel-mongodb在嵌入式数组上使用$elemMatch?

bpsygsoo  于 2023-10-15  发布在  PHP
关注(0)|答案(2)|浏览(104)

我的文档:

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

我想搜索文件,并返回文件,如果用户输入'凯利D贝纳维德斯'。我已尝试使用:

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

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

sbtkgmzw

sbtkgmzw1#

方法#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();
rslzwgfq

rslzwgfq2#

这段代码对你来说很好:

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

相关问题