首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有办法限制聚合查询中的字段?

有没有办法限制聚合查询中的字段?
EN

Stack Overflow用户
提问于 2015-04-20 03:08:11
回答 2查看 6.7K关注 0票数 6

有没有办法在MongoDB中限制aggregate查询中的字段?

使用find(),您可以设置您不想0限制所有内容的字段,但是使用update,您可以使用$unset命令(这实际上并不相同,但很接近),但是似乎没有使用aggregate命令来完成此操作的方法。

当我尝试设置为0时,我得到:

"errmsg“:”异常:当前唯一支持排除的字段是顶级_id字段“

换句话说,根据http://docs.mongodb.org/manual/tutorial/project-fields-from-query-results/中的示例,我希望返回文档中除某些字段之外的所有字段。示例:

代码语言:javascript
复制
db.inventory.find( { type: 'food' }, { type:0 } )

似乎使用aggregate命令,我只能告诉它要包括什么,而不能告诉它要排除什么

EN

回答 2

Stack Overflow用户

发布于 2015-04-20 03:16:01

您可以在管道中使用$project阶段来指定要包含在输出中的字段:

代码语言:javascript
复制
{$project: {a: 1, b: 1, _id: 0}}

用于问题更新的更新:

不幸的是,字段排除只支持_id,所以你不能直接排除type,而必须包含你想要的所有字段。

票数 8
EN

Stack Overflow用户

发布于 2019-06-10 00:45:01

启动Mongo 4.2,如果您的投影阶段只包含丢弃字段,则可以使用$project的别名$unset

代码语言:javascript
复制
// { a: 1, b: 2, c: 3 },
// { a: 4, b: 5, c: 6 }
db.collection.aggregate({ $unset: ["_id", "b"] })
// { a: 1, c: 3 }
// { a: 4, c: 6 }

其中["_id", "b"]是要丢弃的字段列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29734511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档