【发布时间】:2022-12-14 22:57:39
【问题描述】:
我正在使用 node 和 mongodb 5。我在我的集合的 Parcel 属性中添加了一个唯一索引。当我在测试时运行程序时,我得到:
MongoBulkWriteError: E11000 duplicate key error collection: mydata.pima2 index: Parcel_1 dup key: { Parcel: "AARON" }
我的代码:
for (let j = 0; j < lastNameRecords.length; j++) {
const ln = lastNameRecords[j].name;
const recordsObj = { 'Parcel': ln, 'recordNum': 'TBD' };
recordsArr.push(recordsObj);
}
console.log('number of records: ', recordsArr.length);
try {
--> const response = await collection.insertMany(recordsArr, { ordered: false });
const updated = await collection.updateOne(result, { recordNum: 'ERD' });
} catch (error) {
console.log(error);
}
错误发生在上面箭头所在的行。显然,在我测试时,我正在插入多条记录,所有这些记录之前都已插入到“pima2”集合中。我想避免导致错误或处理错误,以便我可以继续执行下一条语句
认为这里最好的方法可能是更新,我决定改变
const response = await collection.insertMany(recordsArr, { ordered: false });
我对 https://www.mongodb.com/docs/manual/reference/method/db.collection.updateMany/ 感到困惑。我试过了
const response = await collection.updateMany({}, recordsArr, { upsert: true });
但现在标题中出现错误。我该如何解决?
【问题讨论】:
标签: javascript node.js mongodb