Ошибка Node.js MongoDB: документ операции обновления должен содержать атомарные операторы - PullRequest
0 голосов
/ 24 мая 2018

Ошибка: документ операции обновления должен содержать атомарные операторы.

db.get().collection('users').updateOne(query, newvalues, function (err, result) {
    cb(err,result)
  })

Я уже использую оператор $ set.Я только что напечатал на консоли запрос и новые значения, и не могу найти ошибку.

query: { username: 'macarra' }
newvalues: { $set: {name: "Mojo Picon",email: "mako@gmail.es"} }

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Если у вас есть объект с новыми значениями:

var obj = {
   name: "Mojo Picon",
   email: "mako@gmail.es"
}

, чтобы построить объект новых значений, требуемый методом updateOne, вам необходимо:

var newvalues = {
   $set: obj
}
0 голосов
/ 24 мая 2018

пример кода для обновления.

db.collection(collectionName).findOneAndUpdate
(
    {  
        documentStatus:req.body.documentStatus, 
        auditTrail:auditArray
    },
    { $addToSet: {"clientArray": clientArrayElem}},
    { upsert:true}
);

Пожалуйста, ознакомьтесь с официальной документацией на драйвер или используйте noSQl Booster IDE, он покажет вам запрос при попытке редактирования документа.

http://mongodb.github.io/node-mongodb-native/3.0/reference/ecmascriptnext/crud/

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