MongoDB — как выбрать данные, поле которых равно минимальному значению поля

Я новичок в MongoDB и хочу выбрать всех пользователей с минимальным возрастом. Что-то вроде этого:

db.users.find({age: {$min: age}})

Кажется очень простым, но я не могу найти, как это сделать.

Для этого вам нужно написать запрос агрегации. Для начала см. $min.

prasad_ 14.12.2020 15:00

@turivishal допустим, у меня есть 4 пользователя в возрасте 22, 35, 41, 22 года. Мне нужны 2 пользователя в возрасте 22 лет.

MuZak 14.12.2020 15:01

Насколько я понимаю, это очень простой запрос, в котором вы получаете документы, поле age которых больше числа. Проверьте, это то, что вы ожидаете. Также отредактируйте свой вопрос, добавив пример документа и ожидаемый результат.

J.F. 14.12.2020 15:02

@Дж.Ф. это не то, что я ожидаю, извините, мой вопрос был недостаточно ясен. ответ туривишала - это то, что я искал.

MuZak 14.12.2020 15:24
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
2
4
174
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  • $gorup на age и сделать массив из users
  • $sort под _id означает age в порядке возрастания
  • $limit 1 документ
db.users.aggregate([
  {
    $group: {
      _id: "$age",
      users: { $push: "$$ROOT" }
    }
  },
  { $sort: { _id: 1 } },
  { $limit: 1 }
])

Детская площадка

Хорошо работает спасибо! Я не все понимаю, но буду разбираться 🧐

MuZak 14.12.2020 15:22

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