如何在Python中查询嵌套的mongoDB数据?

问题描述 投票:0回答:1

我像这样在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”具有相同样式吗?

python mongodb pymongo
1个回答
0
投票

您可以像使用嵌套字典一样使用集合:

collection["artist"]

将为您提供所需的结果。

要获得“ Unit B1”的成员,我们必须遍历所有艺术家:

for x in collection["artist"]:
    if x["name"] == "Unit B1":
        print(x["members"])
        break
© www.soinside.com 2019 - 2024. All rights reserved.