Корректное указание условия AND запроса в Mongo?

В MongoDB для создания запросов с условием AND используется оператор $and. Оператор $and принимает в качестве аргумента массив, в котором каждый элемент представляет собой условие, которое должно быть выполнено.

Пример использования оператора $and:

db.collection.find({
  $and: [
    { field1: value1 },
    { field2: value2 },
    { field3: value3 }
  ]
});

В приведенном примере мы ищем документы, у которых значение поля field1 равно value1, значение поля field2 равно value2 и значение поля field3 равно value3. Все три условия должны быть выполнены одновременно.

Вы также можете использовать оператор $and для комбинирования с другими операторами. Например:

db.collection.find({
  $and: [
    { field1: value1 },
    { $or: [{ field2: value2 }, { field3: value3 }] }
  ]
});

В приведенном примере мы ищем документы, у которых значение поля field1 равно value1 и значение поля field2 равно value2 или значение поля field3 равно value3. Здесь мы использовали оператор $or для создания условия, включающего в себя два варианта.

Важно отметить, что в MongoDB при использовании нескольких условий в одном запросе, по умолчанию они объединяются с использованием оператора $and. Поэтому вы можете также написать запрос без явного использования оператора $and:

db.collection.find({
  field1: value1,
  field2: value2,
  field3: value3
});

В этом случае результат будет таким же, как и в первом примере, но оператор $and не указывается явно.