我有一个具有唯一索引的MongoDB集合。 我正在尝试将文档数组插入或更新到该集合中。MongoDb:插入或更新具有唯一索引的多个文档
如果集合中没有与文档的唯一索引相匹配的现有文档,则应将该新文档插入到集合中。
但是,如果已有集合中的文档具有该唯一索引,则应该使用新文档的字段进行更新。任何不在新文档中的字段都应该保持不变。
这是我目前正在插入(但不是更新)的工作。
const mongojs = require('mongojs');
const db = mongojs('mongodb://username:[email protected]:37230/database');
// items is an array of documents
db.items.insert(items, (err, task) => {
if (err) {
console.log(err);
}
})
我明白这是错误的,它目前给出了这个错误:
E11000 duplicate key error index: database.items.$upc_1 dup key:
,这是什么正确的查询?
您是否收到错误消息? –
首先,只需使用MongoDB的本地NodeJS驱动程序。其次,你想使用Upsert,而不是插入。 –
从原始文章中不清楚您使用的是本机驱动程序。 mongojs本身就是一个NPM模块。你应该在你的例子中显示你需要的语句。 –