Mongodb 使用基于对象关键点的关键点将对象数组转换为对象?
例如,在我的Mongo Aggregate请求中,我得到了一个数组,它由两个对象组成:Mongodb 使用基于对象关键点的关键点将对象数组转换为对象?,mongodb,aggregation-framework,Mongodb,Aggregation Framework,例如,在我的Mongo Aggregate请求中,我得到了一个数组,它由两个对象组成: [ { "key": "first", "meta": 123, }, { "key": "second", "meta": 567, "maybeonmorefield": 789 } ] 是否可以仅使用Mongo聚合框架将此数组转换为以下对象: { "first": { "meta": 123, }, "second": {
[
{
"key": "first",
"meta": 123,
},
{
"key": "second",
"meta": 567,
"maybeonmorefield": 789
}
]
是否可以仅使用Mongo聚合框架将此数组转换为以下对象:
{
"first": {
"meta": 123,
},
"second": {
"meta": 123,
"maybeonmorefield": 789
}
}
如您所见,键实际上是来自第一个示例中对象的键
字段值
感谢您提供的提示:)您可以使用在根级别重新排列文档并动态生成新密钥:
db.collection.aggregate([
{
$addFields: {
"root": "$$ROOT"
}
},
{
$project: {
"root.key": 0,
"root._id": 0
}
},
{
$replaceRoot: {
newRoot: {
$arrayToObject: [[ { k: "$key", v: "$root" } ]]
}
}
}
])