首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将文档插入集合,除非它们已经插入?

将文档插入集合,除非它们已经插入?
EN

Stack Overflow用户
提问于 2018-11-10 20:11:54
回答 1查看 50关注 0票数 3

我从API中获得了一个对象列表:

代码语言:javascript
复制
let sold = [
 {  objId: 3240747,
    soldDate: '2018-09-27',
    soldPrice: 4610000,
    apartmentNumber: '1202',
    soldPriceSource: 'bid',
  },
  { objId: 3234263,
    soldDate: '2018-09-24',
    soldPrice: 2580000,
    soldPriceSource: 'bid',
  }
...
]

我将这些保存在一个集合中:

代码语言:javascript
复制
soldCollection.insertMany(sold)

以前已经检索过一些对象,我只想存储数据库中没有的一次对象。

代码语言:javascript
复制
 dbo.collection("sold").createIndex({ "objId": 1 }, { unique: true })

怎样才能有效地做到这一点?我应该在存储对象之前请求每个对象,还是有方法来处理这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-10 20:32:44

默认情况下,当发生第一个错误时,insertMany将停止插入(本例中为E11000 duplicate key error)。可以通过将ordered参数设置为false来更改该行为。在这种情况下,您将从失败的插入中获得错误列表,但是所有有效的文档都将成功地插入:

代码语言:javascript
复制
db.sold.insertMany(sold, { ordered: false })

文档示例这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53243000

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档