【发布时间】:2018-01-22 21:51:17
【问题描述】:
我正在使用 Mongo 3.2.14
我有一个如下所示的 mongo 集合:
{
'_id':...
'field1':...
'field2':...
'field3':...
etc...
}
我想这样聚合:
db.collection.aggregate{
'$match':{},
'$project':{
'field1':1,
'field2':1,
'field3':1,
etc...(all fields)
}
}
有没有一种方法可以在不逐一列出每个字段的情况下包含项目中的所有字段? (我有大约 30 个领域,并且还在不断增长……)
我在这里找到了相关信息:
MongoDB $project: Retain previous pipeline fields
Include all existing fields and add new fields to document
how to not write every field one by one in project
但是,我使用的是 mongo 3.2.14,并且不需要创建新字段,因此,我认为我不能使用 $addFields。但是,如果可以的话,谁能告诉我如何使用它?
【问题讨论】:
-
“我有 30 个字段并且还在不断增长...” 好的,那太好了,您实际上查看了一些答案,但是您的问题实际上并没有告诉我们除了该声明之外的任何内容.问题是什么?
$project由 A 工作,仅包括您明确要求 B 的字段或通过 排除 您明确要求它执行的字段。您实际上并没有解释您真正在做什么。我在这里看到的是$match和$project,根本没有理由说明为什么需要包含这些字段或排除或管道的其余部分需要是什么。解释你的情况 -
“有没有办法在不逐一列出每个字段的情况下包含项目中的所有字段?(我有大约 30 个字段,并且还在增长......)”我的问题开始于“(我有大约 30 个领域,并且还在不断增长……)”如果有帮助的话……
标签: mongodb mongodb-query