我像这样在mongoDB集合中有一些数据。其中一些甚至可能嵌套得更多,并具有更多的“成员”条目。我想查询数据,以便获得所有“艺术家”条目及其“成员”条目。
{
"songname": "random name",
"artist": [
{
"name": "Band A",
"members": [
{
"name": "Unit A1",
"members": [
{
"name": "Member A1",
"members": []
}
]
},
{
"name": "Unit A2",
"members": [
{
"name": "Member A2",
"members": []
}
]
},
{
"name": "Unit A3",
"members": [
{
"name": "Member A3",
"members": []
}
]
}
]
},
{
"name": "Band B",
"members": [
{
"name": "Unit A1",
"members": [
{
"name": "Member A1",
"members": []
}
]
},
{
"name": "Unit A2",
"members": [
{
"name": "Member A2",
"members": []
}
]
},
{
"name": "Unit A3",
"members": [
{
"name": "Member A3",
"members": []
}
]
}
]
}
]
}
类似这样的东西:
{
"name": "Band A",
"members": [...]
}
{
"name": "Unit A1",
"members": [...]
}
{
"name": "Member A1",
"members": [...]
}
{
"name": "Band B",
"members": [...]
}
{
"name": "Unit B1",
"members": [...]
}
{
"name": "Member B1",
"members": [...]
}
[还有一种方法,只能获得特定的“艺术家”,例如“ Unit B1”和它的“ members”具有相同样式吗?
您可以像使用嵌套字典一样使用集合:
collection["artist"]
将为您提供所需的结果。
要获得“ Unit B1”的成员,我们必须遍历所有艺术家:
for x in collection["artist"]:
if x["name"] == "Unit B1":
print(x["members"])
break