如何在不删除其他字段的情况下重命名聚合管道中的字段



伙计们。我有一个聚合和一个字段映射,需要重命名。问题是,结构没有定义,所以我真的不知道结果输出中会有哪些属性。

最后,我需要重命名字段,而不删除其他字段。示例:

[
...
{
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
}
}
])

示例

相关内容

  • 没有找到相关文章

最新更新