Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多数组中的mongodb get元素_Python_Mongodb - Fatal编程技术网

Python 多数组中的mongodb get元素

Python 多数组中的mongodb get元素,python,mongodb,Python,Mongodb,我有这样的mongodb文档: { "post":[ { "name": "post1", "part": [ { "name": "part1", ... },{ "name": "part2", ..

我有这样的mongodb文档:

{
    "post":[
        {
            "name": "post1",
            "part": [
                {
                    "name": "part1",
                    ...
                },{
                    "name": "part2",
                    ...
                }
            ]
        },{
            "name": "post2",
            "part": [
                {
                    "name": "part3",
                    ...
                },{
                    "name": "part4",
                    ...
                }
            ]
        }
        ...
    ]
}
{
    "post": [
        {
            "part":[
                {
                    "name": "part2"
                }
            ]
        }
    ]
}
db.find_one({"_id": 123},{
    "post.%s.part.%s.name" % (0, 1) : 1
})
我希望得到如下输出:

{
    "post":[
        {
            "name": "post1",
            "part": [
                {
                    "name": "part1",
                    ...
                },{
                    "name": "part2",
                    ...
                }
            ]
        },{
            "name": "post2",
            "part": [
                {
                    "name": "part3",
                    ...
                },{
                    "name": "part4",
                    ...
                }
            ]
        }
        ...
    ]
}
{
    "post": [
        {
            "part":[
                {
                    "name": "part2"
                }
            ]
        }
    ]
}
db.find_one({"_id": 123},{
    "post.%s.part.%s.name" % (0, 1) : 1
})
我的问题是这样的:

{
    "post":[
        {
            "name": "post1",
            "part": [
                {
                    "name": "part1",
                    ...
                },{
                    "name": "part2",
                    ...
                }
            ]
        },{
            "name": "post2",
            "part": [
                {
                    "name": "part3",
                    ...
                },{
                    "name": "part4",
                    ...
                }
            ]
        }
        ...
    ]
}
{
    "post": [
        {
            "part":[
                {
                    "name": "part2"
                }
            ]
        }
    ]
}
db.find_one({"_id": 123},{
    "post.%s.part.%s.name" % (0, 1) : 1
})
我知道列表帖子的索引是0,部分是1

我无法通过输出的索引获取,您能帮我获取数组的元素吗? 我尝试过$slice,但如何在数组的多部分中使用$slice进行查询
谢谢

除非与$匹配,否则投影无法投影出特定元素。您可以仅限于字段post.part.name,但仍然可以获取底层数组中每个元素的字段值。

我通过此查询成功获取了该字段:{'xyzhack':1,hack filter'post':{$slice:[post_index,1]},'post.part.name':{$slice:[part index,1]},我添加了xyzhack字段不存在,因为我不知道为什么mongodb响应所有没有该字段的数据