douhuan1905 2016-11-10 17:33
浏览 220
已采纳

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

My document:

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

I am wanting to search the document and return the document if user enters 'Kelly D Benavides'. I have tried using:

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

I believe the correct way to do so is using elemMatch but not clear on the syntax. Any pointers?

  • 写回答

1条回答 默认 最新

  • dougou3871 2016-11-10 18:21
    关注

    Method #01

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

    Method #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();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?