Чтобы найти документы с массивом идентификаторов в MongoDB, можно использовать несколько методов. Давайте рассмотрим некоторые из них вместе с примерами кода.
-
Использование оператора
$in:const ids = ['id1', 'id2', 'id3']; // Array of IDs db.collection.find({ _id: { $in: ids } });В этом запросе используется оператор
$inдля сопоставления документов, в которых поле_idприсутствует в массивеids. -
Использование оператора
$all:const ids = ['id1', 'id2', 'id3']; // Array of IDs db.collection.find({ _id: { $all: ids } });Этот запрос использует оператор
$allдля поиска документов, в которых поле_idсодержит все элементы массиваids. -
Использование оператора
$elemMatch:const ids = ['id1', 'id2', 'id3']; // Array of IDs db.collection.find({ ids: { $elemMatch: { $in: ids } } });В этом запросе используется оператор
$elemMatchдля поиска документов, в которых поле массиваidsсодержит любой элемент, присутствующий в массивеids. -
Использование метода
aggregate:const ids = ['id1', 'id2', 'id3']; // Array of IDs db.collection.aggregate([ { $match: { _id: { $in: ids } } } ]);Этот конвейер агрегирования использует этап
$matchдля фильтрации документов на основе поля_id.
Вот некоторые методы, которые можно использовать для поиска документов с массивом идентификаторов в MongoDB. Выберите метод, который лучше всего подходит для вашего конкретного случая использования.