MongoDB найти все со значением undefined - PullRequest
1 голос
/ 21 октября 2019

Привет! Я случайно обновил некоторые записи в mongodb со значением undefined, написав некоторый ванильный javascript в NoSQLBooster IDE. Проблема в том, что записи существуют, но когда я запускаю $, существует значение true, это показывает записи в Robo3T, но не в NoSQLBooster. Однако когда я запускаю электронную почту, она равна undefined, она не возвращает никаких записей, однако записи существуют. Вот пример запроса и снимок экрана с результатом

 db.customer.find({source:'some value',"email":{$exists: true}})
   .projection({})
   .sort({_id:-1})

enter image description here

Как запросить и исправить эти записи. Спасибо

1 Ответ

1 голос
/ 21 октября 2019

Вы можете запросить документы, где email равно undefined, используя оператор $type:

db.customer.find({source: 'some value', email: {$type: 'undefined'}})

Обратите внимание, что неопределенный тип указан как устаревший в документы , но пока он работает.

Запрос на email: null также вернет эти документы, но это также будет включать документы, в которых email отсутствует или установлен на null. Таким образом, вам нужно будет дополнительно уточнить запрос с двумя дополнительными терминами, чтобы исключить их:

db.customer.find({$and: [
    {source: 'some value'},
    {email: null}, 
    {email: {$not: {$type: 'null'}}}, 
    {email: {$exists: true}}]})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...