我正在开发一个项目,因为我是MongoDB的新手,我有一个关于查询数据库的问题。我想像这样查询数据库
db.getCollection('achievmenets2').find("id":20)
如果存在20的id并且返回对象
,它将搜索整个文档这是数据库的外观
-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)
感谢您的回答
答案 0 :(得分:0)
假设您有一个包含以下数据的集合测试。
<强>测试强>
{
"_id" : ObjectId("5a1172f17780777507a9be7a"),
"name" : "Rob",
"friends" : [
"Jamie",
"Avisha"
]
}
{
"_id" : ObjectId("5a1172f17780777507a9be7c"),
"name" : "Kim",
"friends" : [
"Jose",
"Avisha"
]
}
您必须查询集合以获取在friends数组中具有“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']}})