【发布时间】:2016-02-26 04:22:40
【问题描述】:
我只想通过$project管道添加一个新字段,让其他属性通过进一步处理,我知道你可以这样做:
db.people.aggregate([
{$project: {name: 1, address: 1, birth_month: {$month: "$birthdate"}}}
])
但是随着文档越来越复杂,我很难在$project中写出20++的字段名。我可以通过聚合管道添加一个字段,这样我就不必一个一个地指定其他字段,比如
db.people.aggregate([
{$appendField: {birth_month: {$month: "$birthdate"}}}
])
【问题讨论】:
-
在这种情况下不要添加 20+ 字段,而是将该字段放在您不想要的项目中 {$project: {name: 0}} 在这种情况下它将选择除名称以外的所有字段。跨度>
-
我想你误会了,我想保留原始文档的所有字段,但要添加一个字段(birth_month)
-
.... 并且无需在 $project 中写下其他字段名称
-
谢谢,是的,这正是我想要的。不幸的是,OP 没有批准它作为答案,所以我应该在这里做什么?回答我自己的问题?
标签: mongodb aggregation-framework