Lab*_*eef 0 arrays object mongoose mongodb aggregation-framework
我有一个对象数组,其中包含未知数量的数组元素:
{ "content": [
{
"_id": "refbooks",
"total": 189,
"published": 189,
"created": 0,
"approved": 0,
"rejected": 0,
"sent_for_approval": 0
},
{
"_id": "weblinks",
"total": 1911,
"published": 1899,
"created": 10,
"approved": 2,
"rejected": 0,
"sent_for_approval": 0
},.................]}
Run Code Online (Sandbox Code Playgroud)
我想将其转换为给定的对象:
{ "content": {
{
"_id": "refbooks",
"total": 189,
"published": 189,
"created": 0,
"approved": 0,
"rejected": 0,
"sent_for_approval": 0
},
{
"_id": "weblinks",
"total": 1911,
"published": 1899,
"created": 10,
"approved": 2,
"rejected": 0,
"sent_for_approval": 0
},.................}}
Run Code Online (Sandbox Code Playgroud)
我尝试使用 $unwind,但没有得到所需的输出。如何在 MongoDB 中实现这个内部聚合管道?
我正在使用 Mongo 3.4 版。
我找到了解决方案。
{
$project: {
"content": {
"$arrayToObject": {
"$map": {
"input": "$content",
"as": "el",
"in": {
"k": "$$el._id",
"v": "$$el"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)