Python 多数组中的mongodb get元素
我有这样的mongodb文档:Python 多数组中的mongodb get元素,python,mongodb,Python,Mongodb,我有这样的mongodb文档: { "post":[ { "name": "post1", "part": [ { "name": "part1", ... },{ "name": "part2", ..
{
"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响应所有没有该字段的数据