В MongoDB Compass запросы пишутся в верхней панели коллекции. Основное поле называется Filter: туда вводят условие отбора документов в формате JSON-подобного объекта. Например, чтобы найти активные товары, используйте:
{ status: "active" }
Compass удобен тем, что результат сразу виден в интерфейсе: вы меняете фильтр, нажимаете Find, смотрите документы и быстро понимаете, правильно ли выбран путь к полю
- Поиск по обычному полю
- Числовые условия
- Поиск по вложенному полю
- Поиск по массиву
- Projection и Sort
- ObjectId в Compass
- Проверка запроса перед сохранением
- Частые ошибки
- Пишут SQL
- Забывают кавычки во вложенном поле
- Путают Filter и Project
- Не нажимают Find
- Копируют пример без проверки типов
- Что почитать дальше по MongoDB
Поиск по обычному полю
{ 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, потом сортировку. Если вы сразу включите все поля панели, будет сложнее понять, какая часть дала пустой результат
Полезный порядок такой:
- открыть коллекцию;
- вставить фильтр в
Filter; - нажать
Find; - проверить 2-3 найденных документа;
- добавить
Sort; - добавить
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. Для соседних задач пригодятся эти разборы:
- MongoDB Compass: подключение и первая коллекция без командной строки
- Discord bot на Python и MongoDB: как задать проверку
- Failed to start MongoDB database server: что проверить
- MongoDB Atlas: облачная база для первого проекта



