Найти все документы, не имеющие ключевого слова в массиве mongodb

Рассмотрим эти 3 документа.

{
    '_id': ObjectId('5b9035e7b93fee6022c31201'),
    'keyword': ['a', 'b']
}, 

{
    '_id': ObjectId('5b9035e7b93fee6022c31202'),
    'keyword': ['a']
}, 

{
    '_id': ObjectId('5b9035e7b93fee6022c31203'),
    'keyword': ['b', 'c']
}

Я хочу сопоставить документы, где ключевое слово a нет

Итак, результат должен быть:

{
    '_id': ObjectId('5b9035e7b93fee6022c31203'),
    'keyword': ['b', 'c']
}

Как это сделать в mongodb?

1 ответ

Решение

Ты можешь использовать $nin оператор запроса

db.collection.find({ "keyword": { "$nin": ["a"] }})

или другое $ne оператор запроса

db.collection.find({ "keyword": { "$ne": "a" }})
Другие вопросы по тегам