Как обновить каждый документ в коллекции MongoDB? - PullRequest
1 голос
/ 16 июня 2020

Я знаю, что это, вероятно, дубликат, но решения из этого сообщения не помогли мне, поэтому я решил повторить это.

Я пытаюсь добавить новое поле в каждый документ в своей базе данных без потери данных. Я много искал и нашел этот код.

           let res = await client.guildData.updateMany({  }, {$set: {testData: false}}, { upsert: true, multi: true })

            console.log(res.nModified)

Однако, когда я запускаю этот код, ничего не происходит, и 0 регистрирует в консоли, что не нашел ничего для обновления, хотя на самом деле есть 9 документов, которые необходимо обновить.

Кто-нибудь знает, как это исправить?

Ответы [ 2 ]

0 голосов
/ 19 июня 2020

Это в основном то, что я изначально опубликовал, но @Vishnu предложил, чтобы я добавил его в схему и изменил код на этот, и теперь он работает нормально :)

let thisThing = await client.guildData.updateMany( { }, {$set:{ guildWhiteList: [] }}, { useFindAndModify: false});

            console.log(thisThing)

Всем спасибо за вашу помощь! 1004 *

0 голосов
/ 16 июня 2020

В Mongoose $set указывать не нужно. Таким образом, вы можете заменить {$set: {testData: false}} просто {testData: false} Документация

Model.updateMany({}, { field: 'value'}, {upsert: true})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...