【发布时间】:2013-10-26 05:47:30
【问题描述】:
我想定义一个 $project 聚合阶段,我可以指示它添加一个新字段并包含所有现有字段,而不必列出所有现有字段。
我的文档看起来像这样,有很多字段:
{
obj: {
obj_field1: "hi",
obj_field2: "hi2"
},
field1: "a",
field2: "b",
...
field26: "z"
}
我想做一个这样的聚合操作:
[
{
$project: {
custom_field: "$obj.obj_field1",
//the next part is that I don't want to do
field1: 1,
field2: 1,
...
field26: 1
}
},
... //group, match, and whatever...
]
在这种情况下,我是否可以使用类似“包含所有字段”的关键字,或者通过其他方式避免单独列出每个字段?
【问题讨论】:
-
此功能将在下一个主要版本 2.6 中提供。您可以在不稳定的开发分支上尝试它 - 使用“$$ROOT”来引用整个传入文档。查看此票中的详细信息:jira.mongodb.org/browse/SERVER-5916
-
stackoverflow.com/questions/20497499/… 也提出了这个问题,还有一些其他有用的不同答案。
标签: mongodb mongodb-query aggregation-framework