有人可以解释一下选择部分收藏吗?我有一个嵌套结构作为示例:
{
some_list : [
{
'name': 'Alexander',
'tasks': [
'task_1',
'task_2',
]
},
{
'name': 'Stepan',
'tasks': [
'task_1',
'task_2',
'task_3',
]
},
{
'name': 'Nikolay',
'tasks': [
'task_1'
]
},
{
'name': 'Irina',
'tasks': [
'task_1',
'task_2'
]
}
]
}
我如何才能获得亚历山大的任务(没有不必要的数据)?
答案 0 :(得分:3)
coll.find({'some_list.name':'Alexander'},{'some_list.$' : 1, _id : 0}).pretty()
{
"some_list" : [
{
"name" : "Alexander",
"tasks" : [
"task_1",
"task_2"
]
}
]
}
答案 1 :(得分:0)
您需要$elemMatch
rsAlgo:PRIMARY> db.algo.find({"some_list.name":"Alexander"},{"some_list":{$elemMatch:{"name":"Alexander"}}});
{ "_id" : ObjectId("51bedddfd894dfcb21087fc2"), "some_list" : [ { "name" : "Alexander", "tasks" : [ "task_1", "task_2" ] } ] }
或使用.pretty()来解释结果
{
"_id" : ObjectId("51bedddfd894dfcb21087fc2"),
"some_list" : [
{
"name" : "Alexander",
"tasks" : [
"task_1",
"task_2"
]
}
]
}