伙计们。我有一个聚合和一个字段映射,需要重命名。问题是,结构没有定义,所以我真的不知道结果输出中会有哪些属性。
最后,我需要重命名字段,而不删除其他字段。示例:
[
...
{
field1: "value1",
field2: "value2",
field3: "value2",
field4: "value4",
}
...
]
例如,我想将输出字段field2重命名为myNewField。与$项目我得到:
[$project: {
"myNewField": "$field2"
}]
在这种情况下,只显示myNewField:
`
[
...
{
myNewField: "value2"
}
...
]
`
预期结果:
[
...
{
field1: "value1",
myNewField: "value2",
field3: "value2",
field4: "value4",
}
...
]
谢谢&祝你今天愉快!
您可以在项目之前添加阶段,使用$set
添加新字段,并在$project
中使用不想输出的字段的排除(0
):
db.collection.aggregate([
{
"$set": {
"myNewField": "$field2"
}
},
{
"$project": {
"field2": 0
}
}
])
示例