Оператор MongoDB $Min

Operator Mongodb Min



Если вы не новичок в базах данных или программировании, вы наверняка пробовали программы и запросы, использующие операторы сравнения — больше, меньше, равно и т. д. В MongoDB, где мы используем оператор «$set» для обновить определенную запись поля или добавить новую запись в базу данных, мы также можем добиться того же результата, используя операторы сравнения, такие как «$min» и «$max». В MongoDB оператор «$min» можно использовать во многих функциональных запросах для обновления определенного поля, когда новое значение меньше уже вставленного значения. Кроме того, его можно использовать для группировки и отображения записей коллекции в определенном порядке. Это руководство поможет вам узнать о различных способах отключения оператора «$min» в MongoDB.

Пример 1:

Начиная с первой иллюстрации, мы демонстрируем использование оператора «$min» в MongoDB для обновления уже вставленной записи с помощью инструмента оболочки MongoDB в системе Windows. Поэтому у вас должны быть некоторые записи, которые уже добавлены в вашу базу данных. Итак, мы используем запрос функции insertMany(), чтобы добавить всего 5 записей в коллекцию «заказ» «тестовой» базы данных. Каждая из вставленных записей, показанных на следующем рисунке, содержит всего 4 поля — идентификатор, название, цена продажи и налог. Эти данные из 5 записей успешно вставлены в соответствии с прикрепленным выводом:

контрольная работа > db.order.insertMany ( [ { 'я бы' :01, 'Заголовок' : 'Мыло' , 'Цена продажи' : 500 , 'Налог' : 24 } ,
... { 'я бы' :02, 'Заголовок' : 'шампунь' , 'Цена продажи' : 700 , 'Налог' : 27 } ,
... { 'я бы' :03, 'Заголовок' : 'Моющее средство' , 'Цена продажи' : 400 , 'Налог' : 22 } ,
... { 'я бы' :04, 'Заголовок' : 'Духи' , 'Цена продажи' : 900 , 'Налог' : 30 } ,
... { 'я бы' :05, 'Заголовок' : 'Туман' , 'Цена продажи' : 850 , 'Налог' : 27 } ] )







Пришло время посмотреть на вставленную запись в «тестовой» базе данных. Для этого вам нужно отбросить метод find() вместе с методом forEach, взяв в качестве аргумента printjson в инструкции db. Используя коллекцию под названием «заказ», у нас есть запись, отображаемая на экране.



контрольная работа > db.order.find ( ) .для каждого ( printjson )



Пришло время использовать оператор «$min» в запросе функции «updateOne», чтобы обновить одну запись из только что созданной коллекции «order». Поле «id» используется в качестве уникального идентификатора для обновления конкретной записи из базы данных, а оператор «$min» применяется к полю «SalePrice» для обновления его значения до 600, если оно меньше уже вставленного значения. Выходное сообщение показывает, что запрос выполнен успешно, но никаких обновлений не производится.





контрольная работа > db.order.updateOne ( { я бы: 3 } , { $мин : { Цена продажи: 600 } } )

Причина, по которой не обновляется поле «Цена продажи» 3-й записи, заключается в том, что оно содержит значение «400», которое меньше «600». Поэтому оператор «$min» не обновляет минимальное значение «400» большим значением «600» в соответствии со следующим прикрепленным запросом find():



контрольная работа > db.order.find ( ) .для каждого ( printjson )

Давайте немного изменим запрос на обновление, чтобы на этот раз получить другой результат. Мы используем ту же самую инструкцию «db», которая использует функцию «updateOne» для изменения одной записи «3». Оператор «$min» применяется к полю «SalePrice», чтобы установить его значение в «300», если значение «300» меньше, чем уже вставленное значение. Мы знаем, что уже вставленное значение «400» в поле «Цена продажи» больше, чем новое значение «300» для сравнения. Итак, на этот раз он заменяет «400» на «300». Выходное сообщение показывает успешное выполнение этого запроса. Модифицированный счетчик = 1 означает, что изменена 1 запись.

контрольная работа > db.order.updateOne ( { я бы: 3 } , { $мин : { Цена продажи: 300 } } )

После отображения записей коллекции «заказ» из «тестовой» базы данных в формате JSON с помощью инструкции функции «find()» в оболочке MongoDB мы обнаружили, что 3-я запись успешно обновлена. Значение 400 поля «Цена продажи» заменяется значением 300.

контрольная работа > db.order.find ( ) .для каждого ( printjson )

Пример 2:

В этой иллюстрации MongoDB мы извлекаем записи конкретной базы данных, группируя их относительно оператора «$ min» в соответствии с минимальным значением в записях. Предположим, что у вас есть те же 5 записей в коллекции «заказ» «тестовой» базы данных MongoDB, и вам нужно иметь некоторые повторяющиеся данные в определенных полях «тестовой» базы данных. Для этого мы добавляем больше записей в коллекцию «заказ» базы данных «тест». На этот раз мы вставляем повторяющиеся значения для поля «Заголовок». Он используется в предложении «$group» для формирования группы уникальных значений. В следующем выводе отображаются только что вставленные еще 3 записи для «тестовой» базы данных. Теперь коллекция «заказ» имеет повторяющиеся значения для поля «Название» по сравнению с 5 старыми записями. Остальные пользуются тем же.

Имея в общей сложности 8 записей в коллекции «заказ» «тестовой» базы данных, пришло время протестировать оператор $min MongoDB после его применения к определенному полю, сгруппированному по другому полю. Прилагаемая агрегатная команда как раз об этом. Он начинается с ключевого слова «db», за которым следует имя коллекции в конкретной базе данных и функция агрегата(). Агрегатная функция начинается с использования предложения $group MongoDB, которое особенно используется здесь для отображения данных в группе, касающихся поля «Название» «тестовой» базы данных, где поле «Название» используется как уникальный ключ. .

В то же время поле цены инициализируется отдельно, которое берет только запись минимального значения из 8 одинаковых записей через примененный к нему оператор «$min». Результат выполнения этого запроса показывает отображение 5 записей с небольшим обновлением в разделе цены. Вы можете видеть, что повторяющиеся записи не отображаются. Здесь отображаются некоторые уникальные записи с наименьшими значениями.

контрольная работа > db.order.aggregate ( [ { $ группа : { _я бы: ' $Название ' , цена: { $мин : ' $ПродажаЦена ' } } } ] )

Заключение

Это руководство представляет собой набор иллюстраций MongoDB, демонстрирующих простой способ использования оператора «$min». Параграф введения используется для обсуждения цели его использования в MongoDB. В первой части этой статьи обсуждается, как работает и не работает оператор «$min» для одной записи в базе данных, т.е. для обновления или вставки записи в качестве минимального значения. Кроме того, последние примеры демонстрируют его использование для группировки записей коллекции как уникальных во всей базе данных.