MongoDB:3.6+
我有一个Pymongo/MongoDB查询:
_data = db['history'].aggregate([
{'$lookup':
{
'from': 'mgmt_item',
'localField': 'id_mgmt_item',
'foreignField' : 'old_id',
'as': 'mgmt_item'
}
},
{'$match': query},
{'$project': projection}
])
我得到以下结果,是正确的。你知道吗
{
"_id":"a4f2a993-749d-4b27-a9bd-c5950babd1bf",
"id_mgmt_item":3,
"value":99.660095,
"image_path":"https://url/a4f2a993-749d-4b27-a9bd-c5950babd1bf.jpg",
"mgmt_item":[
{
"lang":{
"pt_BR":"Descrição..."
}
}
]
}
但是,我想把结果展平,使其具有管理的价值_item.lang.pt\BR作为管理项目的值,如下所示:
{
"_id":"a4f2a993-749d-4b27-a9bd-c5950babd1bf",
"id_mgmt_item":3,
"value":99.660095,
"image_path":"https://url/a4f2a993-749d-4b27-a9bd-c5950babd1bf.jpg",
"mgmt_item":"Descrição..."
}
我应该在查询中做什么更改以获得所需的结果?你知道吗
您可以将以下$replaceRoot阶段添加到聚合列表的末尾,以便根据需要展平:
游乐场:
https://mongoplayground.net/p/iR8Qoc3TkXU
文件:
https://docs.mongodb.com/manual/reference/operator/aggregation/replaceRoot/
https://docs.mongodb.com/manual/reference/operator/aggregation/arrayElemAt/
相关问题 更多 >
编程相关推荐