如何查找与嵌套键 laravel mongodb jenssegers 匹配的记录
Posted
技术标签:
【中文标题】如何查找与嵌套键 laravel mongodb jenssegers 匹配的记录【英文标题】:How to find record matching the nested key laravel mongodb jenssegers 【发布时间】:2018-04-08 19:43:35 【问题描述】:我在 laravel 中使用 jenssegers mongodb 包来查询 mongodb。如何在下面的 json 文档中检索仅匹配比赛的记录作为板球。
"_id": ObjectId("53402597d852426020000002"),
"contact": "987654321",
"dob": "01-01-1991",
"gender": "M",
"name": "Tom Benzamin",
"user_name": “tombenzamin”,
“Personal_info”:[
hobbies:
"games": "cricket",
"favfilms": "lotr",
"favfood": "burger"
]
【问题讨论】:
你能分享你的关系配置(模型类)吗? 目前没有配置关系 【参考方案1】:你可以使用whereRaw
方法结合elemMatch
:
DB::collection('users')->where(
'Personal_info.hobbies',
'elemMatch',
[ 'games' => 'cricket' ]
)->get()
【讨论】:
假设 Personal_info 是否有 json 数组。编辑了问题 @oldrock 我已经更新了答案,请检查【参考方案2】:$crickets = DB::collection('games')->where('Personal_info.hobbies.games', 'cricket')->get();
这样的东西应该可以工作
【讨论】:
如果 Personal_info info 是一个像 Personal_info[] 这样的数组,那么我如何访问内部级别密钥 ...->where('Personal_info["hobbies"].games', 'cricket')->get(); 嘿,@Alfa 给出的答案是有效的。非常感谢您的帮助。以上是关于如何查找与嵌套键 laravel mongodb jenssegers 匹配的记录的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB通过***属性和嵌套数组键查找文档,并返回匹配文档的一部分