Изучите запросы и операции MongoDB с помощью этого удобного руководства.

MongoDB — одна из самых желанных и популярных баз данных NoSQL для профессионального развития. Его гибкость, масштабируемость и способность обрабатывать большие объемы данных делают его лучшим выбором для современных приложений. Если вы хотите освоить обычные запросы и операции MongoDB, вы попали по адресу.

Независимо от того, хотите ли вы эффективно извлекать данные и манипулировать ими, внедрять надежные модели данных или создавать адаптивные приложений, глубокое понимание общих запросов и операций MongoDB, несомненно, улучшит ваши навыки.

1. Создание или переключение баз данных

Создать базу данных локально через MongoDB Shell несложно, особенно если вы настроили удаленный кластер. Вы можете создать новую базу данных в MongoDB с помощью использовать команда:

use db_name

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

instagram viewer

2. Удалить базу данных

Сначала переключитесь на базу данных, которую вы хотите удалить, используя использовать команду, как это делалось ранее. Затем удалите базу данных с помощью падение базы данных () команда:

use db_name
db.dropDatabase()

3. Создать коллекцию

Чтобы создать коллекцию, переключитесь на целевую базу данных. Использовать создатьколлекцию() ключевое слово для создания новой коллекции MongoDB:

db.createCollection("collection_name")

Заменять имя_коллекции с выбранным вами названием коллекции.

4. Вставить документ в коллекцию

При отправке данных в коллекцию вы можете вставить один документ или массив документов.

Чтобы вставить один документ:

db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})

Вы также можете использовать описанный выше метод для вставки массива документов с одним идентификатором:

db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])

Чтобы вставить сразу несколько документов, каждый из которых имеет отдельный идентификатор, используйте кнопку вставитьмного ключевое слово:

db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])

5. Получить все документы из коллекции

Вы можете запросить все документы из коллекции, используя находить() ключевое слово:

db.collection_name.find()

Приведенное выше возвращает все документы внутри указанной коллекции:

Вы также можете ограничить возвращаемые данные определенным числом. Например, вы можете использовать следующую команду, чтобы получить только первые два документа:

db.collection_name.find().limit(2)

6. Фильтрация документов в коллекции

Существует множество способов фильтрации документов в MongoDB. Рассмотрим, например, следующие данные:

Если запрашивается только определенное поле в документе, используйте находить метод:

db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})

Приведенное выше возвращает все документы, в которых значение Нравится является Wordle. Он выводит только имена и игнорирует идентификатор документа.

Вы также можете отфильтровать коллекцию по числовому коэффициенту. Допустим, вы хотите получить имена всех пользователей старше 21 года, используйте $gt оператор:

db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})

Вывод выглядит так:

Попробуйте заменить находить с найтиодин чтобы увидеть, что происходит. Однако есть много других ключевых слов для фильтрации:

  • $lt: Все значения меньше указанного.
  • $gte: значения равные или большие указанного.
  • $lte: Значения, которые меньше или равны определенному.
  • $ экв.: получает все значения, равные указанному.
  • $ne: Все значения не равны указанному.
  • $in: Используйте это при запросе на основе массива. Он получает все значения, соответствующие любому элементу массива. $ нин ключевое слово делает обратное.

7. Сортировка запросов

Сортировка помогает упорядочить запрос в определенном порядке. Вы можете сортировать в порядке убывания или возрастания. Имейте в виду, что для сортировки требуется числовая ссылка.

Например, для сортировки по возрастанию:

db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})

Чтобы отсортировать приведенный выше запрос в порядке убывания, замените «1» на «-1».

db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})

8. Обновить документ

Для обновлений MongoDB требуются атомарные операторы, чтобы указать, как вы хотите выполнить обновление. Вот список часто используемых атомарных операторов, которые вы можете связать с запросом на обновление:

  • $установить: добавить новое поле или изменить существующее поле.
  • $push: вставить новый элемент в массив. Соедините его с $каждый оператор для вставки нескольких элементов одновременно.
  • $тянуть: удалить элемент из массива. Используйте его с $in удалить много элементов за один раз.
  • $ не установлен: удалить поле из документа.

Чтобы обновить документ и добавить новое поле, например:

db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})

Вышеприведенное обновляет указанный документ, как показано:

Удалить поле электронной почты легко с помощью $ не установлен оператор:

db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})

Рассмотрим следующие примеры данных:

Вы можете вставить элемент в существующий предметы поле массива с помощью $push оператор:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})

Вот результат:

Использовать $каждый оператор для вставки нескольких элементов одновременно:

db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})

Вот результат:

Как упоминалось, $тянуть оператор удаляет элемент из массива:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})

Обновленные данные выглядят так:

Включить $in ключевое слово для удаления многих элементов в массиве за один раз:

db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})

9. Удалить документ или поле

удалить один или удалить много ключевое слово удаляет документ из коллекции. Использовать удалить один чтобы удалить документ на основе указанного поля:

db.collection_name.deleteOne({"Name":"IDNoble"})

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

db.collection.deleteMany({"Likes":"Chess"})

10. Операция индексирования

Индексирование повышает производительность запросов за счет оптимизации количества документов, которые MongoDB необходимо сканировать. Часто бывает лучше создать индекс для полей, которые вы запрашиваете чаще.

Индексирование MongoDB похоже на то, как вы использовать индексы для оптимизации SQL-запросов. Например, для создания восходящего индекса на Имя поле:

db.collection.createIndex({"Name":1})

Чтобы перечислить ваши индексы:

db.collection.getIndexes()

Вышеизложенное является лишь преамбулой. Существует несколько других способов создание индекса в MongoDB.

11. Агрегация

Конвейер агрегации, улучшенная версия MapReduce, позволяет выполнять и сохранять сложные вычисления внутри MongoDB. В отличие от MapReduce, который требует написания карты и функций сокращения в отдельных Функции JavaScript, агрегация проста и использует только встроенные методы MongoDB.

Рассмотрим, например, следующие данные о продажах:

Используя агрегацию MongoDB, вы можете рассчитать и сохранить общее количество проданных товаров для каждой категории следующим образом:

db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])

Приведенный выше запрос возвращает следующее:

Мастер запросов MongoDB

MongoDB предлагает множество методов запросов, в том числе функции для повышения производительности запросов. Независимо от вашего языка программирования, приведенные выше структуры запросов являются рудиментарными для взаимодействия с базой данных MongoDB.

Однако могут быть некоторые расхождения в базовом синтаксисе. Например, в то время как некоторые языки программирования, такие как Python, распознают регистр змей, другие, включая JavaScript, используют регистр верблюдов. Убедитесь, что вы исследуете, что работает для выбранной вами технологии.