#node.js #mongodb
#node.js #mongodb
Вопрос:
итак, я могу создать коллекцию с использованием nodejs / MongoDB, используя этот код
// create a collection and inserting the object
dbo.collection('employees').insertOne(myobj, function(err, res) {
//if there is an error throw error message
if (err) throw err;
// print out if collection is created
console.log(colors.green("Collection created ✓"),'n','n',companyMotto, '-',
subDomain,'n','n');
//close the db
db.close();
});
я пытаюсь найти код для обновления коллекции в целом, если их коллекция уже существует, используя это
// create a collection and inserting the object
dbo.collection('employees').updateOne(myobj, function(err, res) {
//if there is an error throw error message
if (err) throw err;
// print out if collection is updated
console.log(colors.green("Collection updated ✓"),'n','n',companyMotto, '-',
subDomain,'n','n');
//close the db
db.close();
});
но я получаю сообщение об ошибке «… throw new TypeError(‘Для обновления документа требуются атомарные операторы’);»
любая помощь будет с благодарностью
Ответ №1:
Если вы хотите создать коллекцию, вам следует просто вызвать createCollection
вместо этого. insertOne
предназначен для вставки документа в коллекцию и updateOne
для обновления определенного документа в коллекции
Update document requires atomic operators
означает, что операция обновления не предоставляется. Итак, mongodb не знает, как вы хотите, чтобы документ обновлялся. например $set
, чтобы обновить значение, $push
поместить значение в массив
Вы можете обратиться к документу nodejs, чтобы узнать, как updateOne
он должен вызываться. updateOne(filter, update, options, callback)
См.: https://mongodb.github.io/node-mongodb-native/3.6/api/Collection.html#updateOne