Pau*_*aul 6 mongodb mongodb-query aggregation-framework
这是一个非常简单的问题,只是有一个非常糟糕的大脑冻结.在我的聚合中,我只想使用$ project删除'_id'字段,但返回其他所有内容.但是我得到了
"$ projection需要至少一个输出字段"
我想会是这样的:
db.coll.aggregate( [ { $match .... }, { $project: { _id: 0 }}])
Run Code Online (Sandbox Code Playgroud)
谢谢
从v4.2 开始,您可以使用$unset聚合运算符来删除单个或多个字段。您还可以使用点表示法从嵌入的文档中排除一个或多个字段。
删除单个字段:
db.coll.aggregate([ { $unset: "_id" } ])
Run Code Online (Sandbox Code Playgroud)
删除多个字段:
db.coll.aggregate([ { $unset: [ "_id", "name" ] } ])
Run Code Online (Sandbox Code Playgroud)
要删除嵌入的字段:
db.coll.aggregate([
{ $unset: [ "_id", "author.name" ] }
])
Run Code Online (Sandbox Code Playgroud)
当通过各种管道操作或通过使用聚合时,您需要显式包含字段$project.除非字段名称明确定义,否则目前无法返回所有字段:
$project : {
_id : 0,
"Name" : 1,
"Address" : 1
}
Run Code Online (Sandbox Code Playgroud)
您可以_id使用您使用的技术排除使用,如上所示.