Mongodb 如何限制组查询中返回的对象数
我有一个Mongodb数据库,它有几百条记录,每个记录都有一个字段“pauseTime”的值。我想计算每个pauseTime值的记录数。但是我想把查询限制在pauseTime大于50小于150的文档中 我甚至计算了pauseTime中每个值的数量 这是数据库的记录:Mongodb 如何限制组查询中返回的对象数,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我有一个Mongodb数据库,它有几百条记录,每个记录都有一个字段“pauseTime”的值。我想计算每个pauseTime值的记录数。但是我想把查询限制在pauseTime大于50小于150的文档中 我甚至计算了pauseTime中每个值的数量 这是数据库的记录: { "_id" : ObjectId("5ca74a95a094b08e97bd1278"), "duration" : NumberInt(857), "videoUrl" : "https://vime
{
"_id" : ObjectId("5ca74a95a094b08e97bd1278"),
"duration" : NumberInt(857),
"videoUrl" : "https://vimeo.com/3766858",
"pauseTime" : NumberInt(493),
"contentType" : "Comment",
"comment" : "vsvdbdbdab adb",
"__v" : NumberInt(0)
}
这是我目前的疑问:
db.getCollection("videocomments").aggregate([ {"$group" : {_id:"$pauseTime", count:{$sum:1}}} ])
它返回:
{ "_id" : 480, "count" : 8 }
{ "_id" : 437, "count" : 5 }
{ "_id" : 51, "count" : 4 }
{ "_id" : 434, "count" : 4 }
{ "_id" : 750, "count" : 9 }
...
如何将“_id”(即pauseTime)限制为50pauseTime
db.getCollection("videocomments").aggregate([
{ "$match": {
"pauseTime": { "$gte": 50, "$lte": 150 }
}},
{ "$group": {
"_id": "$pauseTime",
"count": { "$sum": 1 }
}}
])