Нет в массиве полей документа mongodb с $ expr - PullRequest
2 голосов
/ 20 марта 2019

Я пытаюсь получить все документы, которые не имеют _id в массиве excluded.

db.sites.find({ "$expr": { '_id': { "$not": { "$in": "$excluded"} } } });

Я не использую $nin, потому что это не разрешено в $expr.

Я получаю следующее сообщение об ошибке:

Error: error: {
    "ok" : 0,
    "errmsg" : "Expression $in takes exactly 2 arguments. 1 were passed in.",
    "code" : 16020,
    "codeName" : "Location16020"
}

Могу ли я использовать для этого $where?

1 Ответ

2 голосов
/ 20 марта 2019

Оператор $ in требует двух аргументов:

db.sites.find({ $expr: { $not: { $in: [ "$_id", "$excluded" ] } } })

Рабочий пример здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...