我想定义一个$ 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...
]
在这种情况下,是否可以使用类似“包括所有字段”这样的关键字,或者可以通过其他方式避免单独列出每个字段?
1
下一个主要版本2.6中将提供此功能。您可以在不稳定的dev分支上尝试使用-使用“ $$ ROOT”来引用整个传入文档。请参阅此票证中的详细信息:jira.mongodb.org/browse/SERVER-5916
—
Asya Kamsky
在stackoverflow.com/questions/20497499/…上也提出了此问题,并提供了一些其他有用且不同的答案。
—
文斯·鲍德伦