Запрос, чтобы найти минимальное и максимальное значение определенного столбца в MongoDB Compass - PullRequest
0 голосов
/ 18 октября 2019

У меня есть какая-то коллекция в MongoDB, например, такая как ниже

[
  { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-01-01T08:00:00Z") },
  { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-02-03T09:00:00Z") },
  { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 5, "date" : ISODate("2014-02-03T09:05:00Z") },
  { "_id" : 4, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-02-15T08:00:00Z") },
  { "_id" : 5, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : ISODate("2014-02-15T09:05:00Z") }
]

Я хочу найти минимальное и максимальное значение "_id" или любое другое поле. Я использую "MongoDB Compass". Как я могу написать запрос в MongoDB Compass, который дает мне минимальное и максимальное значение конкретного столбца

Ответы [ 2 ]

1 голос
/ 04 ноября 2019

Если вы хотите сделать это в текстовом поле filter, т. Е. По запросу, а не по агрегации (как рекомендовано sushant), то вы можете отсортировать целевое поле в порядке убывания и установить предел равным 1.

Пример: минимальная цена enter image description here


Пример: максимальная цена enter image description here

1 голос
/ 18 октября 2019

Вы можете использовать конвейер $ group, используя операторы $ min и $ max в агрегатном конвейере как

 collectionName.aggregate([
    {$group:{_id:null,minVal: {$min: "$price"},maxVal: {$min: "$price"},}}
   ])
...