Я знаю, что могу искать в мангусте, как

schema.find( { '_id' : { $in: [1,2,3]} }, function(err,data){});

Моя проблема в том, что, например, объекты с _id 1 и 3 существуют, но нет объекта с _id 2. Таким образом, метод поиска завершится ошибкой. Есть ли способ найти все возможные объекты, игнорируя inavlid id_s?

0
choosyg 19 Апр 2016 в 21:06

2 ответа

Лучший ответ

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

В документации указано:

Оператор $ in выбирает документы, в которых значение поля равно любому значению в указанном массиве.

1
Findiglay 19 Апр 2016 в 18:19

Сначала Mongo проверяет длину _id, и она должна быть 24 символа,

Если один из элементов массива меньше 24 символов, он покажет вам ошибку длины, например:

234324533423423423423424 _id не существует в базе данных

 db.users.find({ '_id' :{ $in:[ObjectId("56d461517a2f02941bfb967a"),ObjectId("56d461517a2f02941bfb967e"),ObjectId("234324533423423423423424")]}}, function(err,data){})

Будет отлично работать, чтобы показать первых 2 участников!

0
Ali SadeghipourKorabaslo 20 Апр 2016 в 07:08