mongodb项目计数具有条件的大小对象的数量

时间:2017-03-24 17:27:03

标签: javascript mongodb

您好我在mongodb中有一个帖子集合,其中有一个作者字段,当我运行以下命令时:



db.posts.aggregate( [ {$project:{ size: {$size: {$ifNull:["$authors", []] }}}} ] )




我得到了这样的结果:



{ "_id" : ObjectId("58c917fe48ad625ee8f49714"), "size" : 30 }
{ "_id" : ObjectId("58c91b83895efc5f0f67ba1a"), "size" : 0 }
{ "_id" : ObjectId("58c91cfd2971c05f310fccb8"), "size" : 30 }
{ "_id" : ObjectId("58c91eb7a826965f85571656"), "size" : 30 }
{ "_id" : ObjectId("58c921a1cb2bc85fa77e593a"), "size" : 30 }




如何计算大小不等于0的次数? 所以在这种情况下,结果将是4。

我试过" db.posts.aggregate([{$ project:{size:{$ size:{$ not:{" $ authors":0}}}}}]) "没有成功......

1 个答案:

答案 0 :(得分:0)

您想使用$ match和$ count聚合方法,如下所示。查看更多MongoDB Aggregate $count

 db.posts.aggregate( 
   [ {
     $match:{ size: {$gt: 0}}
   }, {
    $count:'total'
   } ] )

这应该返回类似:

 { "total" : 4 }