2016-06-03 4 views
1

У меня есть коллекция ft с рядом записей. Однако я хочу исключить определенные идентификаторы, которые у меня есть в списке с разделителями-запятыми.Выбрать только документы с идентификационным номером не в коллекции

Я пытаюсь сделать следующее

var ids = [ "RQcWthREHBTfkybMy", "jiPrzQQWxbN5a8pEC", "5oFxC68WEggYzY7ah" ] 
db.collection.find({ _id: { $ne: ids } }) 

, но я могу только управлять, чтобы исключить RQcWthREHBTfkybMy, которая является первой идентификатор в моем списке.

+1

Используйте [** '$ nin' **] (https://docs.mongodb.com/manual/reference/operator/query/nin/) как' db.ft.find ({_ ID: {$ nin: ["RQcWthREHBTfkybMy", "jiPrzQQWxbN5a8pEC", "5oFxC68WEggYzY7ah"]}}) ' – chridam

+0

@chridam Спасибо. Это сработало. –

ответ

0

Поведение оператора запроса, когда указанное значение является массивом, сильно отличается от оператора $eq. Чтобы проверить, нет ли значения поля в указанном массиве, вам необходимо использовать оператор запроса $nin.

var ids = [ "RQcWthREHBTfkybMy", "jiPrzQQWxbN5a8pEC", "5oFxC68WEggYzY7‌​ah" ] 
db.collection.find({ "_id": { "$nin": ids } })