MongoDB Compass: примеры запросов

В MongoDB Compass запросы пишутся в верхней панели коллекции. Основное поле называется Filter: туда вводят условие отбора документов в формате JSON-подобного объекта. Например, чтобы найти активные товары, используйте:

{ status: "active" }

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

Поиск по обычному полю

{ category: "books" }

Такой фильтр найдет документы, где поле category равно books

Поиск по нескольким условиям:

{ category: "books", inStock: true }

MongoDB применит оба условия одновременно

Числовые условия

Товары дороже или равные 1000:

{ price: { $gte: 1000 } }

Товары от 1000 до 5000:

{ price: { $gte: 1000, $lte: 5000 } }

Если результат пустой, проверьте тип поля. Число 1000 и строка "1000" — разные значения

Поиск по вложенному полю

Если документ содержит объект:

{
  author: {
    name: "Dinar"
  }
}

Фильтр будет таким:

{ "author.name": "Dinar" }

Для вложенных полей используется точечная запись

Поиск по массиву

Если в документе есть массив:

tags: ["css", "mongodb", "backend"]

Найти документы с тегом mongodb можно так:

{ tags: "mongodb" }

Для массива объектов используйте $elemMatch, если нужно, чтобы несколько условий относились к одному элементу массива

Projection и Sort

В поле Project можно оставить только нужные поля:

{ title: 1, price: 1, _id: 0 }

В поле Sort:

{ price: -1 }

-1 сортирует по убыванию, 1 — по возрастанию

ObjectId в Compass

Для поиска по _id используйте:

{ _id: ObjectId("665f1c1a7b8c2e0012a4d111") }

Если вставить id как строку, документ может не найтись

Проверка запроса перед сохранением

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

Полезный порядок такой:

  1. открыть коллекцию;
  2. вставить фильтр в Filter;
  3. нажать Find;
  4. проверить 2-3 найденных документа;
  5. добавить Sort;
  6. добавить Project.

Так Compass становится не просто просмотрщиком, а быстрой проверкой запроса перед кодом

Частые ошибки

Пишут SQL

В Compass не пишут SELECT * FROM products. Используйте JSON-фильтр

Забывают кавычки во вложенном поле

author.name нужно писать как строку: { "author.name": "Dinar" }

Путают Filter и Project

Filter выбирает документы, Project выбирает поля внутри результата

Не нажимают Find

После изменения фильтра нажмите Find, иначе Compass покажет старый результат

Копируют пример без проверки типов

Если поле price сохранено строкой, фильтр { price: { $gte: 1000 } } не даст ожидаемого поведения. Сначала откройте реальный документ и посмотрите, как поле хранится

Что почитать дальше по MongoDB

Если нужен общий маршрут по теме, откройте рубрику MongoDB. Для соседних задач пригодятся эти разборы:

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x