我有一個具有唯一索引的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模塊。你應該在你的例子中顯示你需要的語句。 –