MongoDB匹配数组/对象数组中的值
我正在从事一个项目,由于我是MongoDB的新手,我对查询数据库有一个问题。我想这样查询数据库MongoDB匹配数组/对象数组中的值,mongodb,Mongodb,我正在从事一个项目,由于我是MongoDB的新手,我对查询数据库有一个问题。我想这样查询数据库 db.getCollection('achievmenets2').find("id":20) 如果id为20,则将搜索整个文档并返回对象 这就是数据库的外观 -Achievement Category - id - Achievements_Array(Contains achievements with the ID that im gonna search for) -Ac
db.getCollection('achievmenets2').find("id":20)
如果id为20,则将搜索整个文档并返回对象
这就是数据库的外观
-Achievement Category
- id
- Achievements_Array(Contains achievements with the ID that im gonna search for)
-Achievement Category2
- id
- Achievements_Array(Contains achievements with the ID that im gonna search for)
感谢您的回答假设您有一个包含以下数据的收集测试 测试
{
"_id" : ObjectId("5a1172f17780777507a9be7a"),
"name" : "Rob",
"friends" : [
"Jamie",
"Avisha"
]
}
{
"_id" : ObjectId("5a1172f17780777507a9be7c"),
"name" : "Kim",
"friends" : [
"Jose",
"Avisha"
]
}
您必须查询集合才能获取好友数组中包含“Avisha”的结果。要实现这一点,您可以使用mongoDB的$in
操作符
这个查询看起来像
db.getCollection('test').find({friends: {$in: ['Avisha']}})
它将给你2个结果。同样,您可以将“test”替换为收藏名称,“friends”替换为成就数组,“Avisha”替换为要搜索的id
例如,假设friends数组包含对象
{
"_id" : ObjectId("5a1172f17780777507a9be7a"),
"name" : "Rob",
"friends" : [
{"name": "Jamie"},
{"name": "Avisha"}
]
}
{
"_id" : ObjectId("5a1172f17780777507a9be7c"),
"name" : "Kim",
"friends" : [
{"name": "Jose"},
{"name": "Avisha"}
]
}
您可以使用以下查询获取结果
db.getCollection('test').find({"friends.name": {$in: ['Avisha']}})
我在你的帖子中找不到任何问题陈述。如何使用嵌套对象查询整个文档