【发布时间】:2020-07-02 00:19:00
【问题描述】:
我想知道是否有人可以提供帮助?我是使用 MongoDB 的新手,我只是在学习聚合和预测。我正在尝试平均 details.age 的结果。
最后我能够编写一些获得平均结果的代码。
db.docs.aggregate([{$group: {_id:null, "Average": {$avg:"$details.age"} } }])
有谁知道如何删除返回的查询结果中的"_id" : null?
我试图从查询本身中删除 "_id" : null,但 $group 需要它 我还尝试了插入 {_id:0} 和 _id:0 的查询的不同排列,但出现错误。
查询
db.docs.aggregate([{$group: {_id:null, "Average": {$avg:"$details.age"} } }])
结果
{ "_id" : null, "Average" : 33 }
提前致谢。
【问题讨论】:
-
添加额外阶段:
{$project:{_id:0}}或{$unset:"_id"} -
感谢 Valijon,我只是在尝试不同的排列方式将 $project 命令添加到 db.docs.aggregate([{$group: {_id:null, "Average": {$avg:"$details .age"},$project:{_id:0} } }]) 有什么建议吗?
-
不。
db.docs.aggregate([{$group: {_id:null, "Average": {$avg:"$details.age"} } },{$project:{_id:0}}])。此外,您可以使用空字符串进行分组:db.docs.aggregate([{$group: {_id:"", "Average": {$avg:"$details.age"} } }]) -
非常感谢 Valijon,您的解决方案非常完美。
标签: mongodb aggregation-framework