我从API中获得了一个对象列表:
let sold = [
{ objId: 3240747,
soldDate: '2018-09-27',
soldPrice: 4610000,
apartmentNumber: '1202',
soldPriceSource: 'bid',
},
{ objId: 3234263,
soldDate: '2018-09-24',
soldPrice: 2580000,
soldPriceSource: 'bid',
}
...
]我将这些保存在一个集合中:
soldCollection.insertMany(sold)以前已经检索过一些对象,我只想存储数据库中没有的一次对象。
dbo.collection("sold").createIndex({ "objId": 1 }, { unique: true })怎样才能有效地做到这一点?我应该在存储对象之前请求每个对象,还是有方法来处理这个问题?
发布于 2018-11-10 20:32:44
默认情况下,当发生第一个错误时,insertMany将停止插入(本例中为E11000 duplicate key error)。可以通过将ordered参数设置为false来更改该行为。在这种情况下,您将从失败的插入中获得错误列表,但是所有有效的文档都将成功地插入:
db.sold.insertMany(sold, { ordered: false })文档示例这里
https://stackoverflow.com/questions/53243000
复制相似问题