Как ограничить количество возвращаемых объектов в групповом запросе

У меня есть база данных Mongodb с несколькими сотнями записей, каждая из которых имеет значение для поля «pauseTime». Я хотел бы подсчитать количество записей для каждого значения pauseTime. Но я хочу ограничить запрос документами, в которых pauseTime больше 50 и меньше 150.

Я дошел до того, что подсчитал количество каждого значения для pauseTime.

Это запись базы данных:


{
    "_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) до 50 < x < 150?

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
1
0
33
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте оператор запроса $lte и $gte с pauseTime

db.getCollection("videocomments").aggregate([
  { "$match": {
    "pauseTime": { "$gte": 50, "$lte": 150 }
  }},
  { "$group": {
    "_id": "$pauseTime",
    "count": { "$sum": 1 }
  }}
])

Другие вопросы по теме