Как найти и заменить все «нулевые» даты в коллекции MongoDB?

#javascript #mongodb #date #replace #null

Вопрос:

Также замените другие форматы позже, например: найдите все даты в формате «дд/мм/ГГГГ» и измените их на формат ISO «ГГГГ-мм-дд».

Но что касается проблемы «null», это .js, который я пытаюсь запустить в MongoDB (NoSQLBooster):

 use sms
           
db.collection1.find({
    "FirstDate":null
})
    .projection({})
    //.sort({ _id: -1 })
    //.limit(1000)
    .forEach(function(doc) {
        var date = doc.FirstDate
        if (date == null) {
            date = ''
        }
    })
 

И все, что я получаю, — это «неопределенные» результаты. В чем может быть проблема?

Ответ №1:

Вы можете использовать update с {multi: true} , чтобы убедиться, что все совпадающие значения обновлены (не только первое).

 db.collection.update({
  FirstDate: null
},
{
  $set: {
    FirstDate: ""
  }
},
{
  multi: true
})
 

Пример здесь

Комментарии:

1. Это сработало просто отлично! Игровая площадка mongo также представляет собой отличный инструмент для тестирования и обучения. Теперь я пытаюсь сохранить все ключи _id для простого запроса «найти», но, похоже, в бесплатной версии нет никаких средств копирования/экспорта. Думаю, мне придется делать это вслепую