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

如何使用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?

图片转代码服务由CSDN问答提供 功能建议

我的文档:

  {
“_id”:  ObjectId(“5824a9472e94e0995d3b0f0c”),
“full_name”:“Kelly Denise Benavides”,
“别名”:[
“Kelly D Benavides”,
“Kelly Benavides”
] 
} 
 
   
 
 

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

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

我认为正确的方法是使用elemMatch但不清楚语法。 任何指针?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 收藏
  • 邀请回答

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();
    
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题