加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数据库 – 如何停止在mongodb集合中插入重复的文档

发布时间:2020-12-13 12:43:06 所属栏目:百科 来源:网络整理
导读:让我们有一个MongoDB集合有三个文档.. db.collection.find() { _id:'...',user: 'A',title: 'Physics',Bank: 'Bank_A' } { _id:'...',title: 'Chemistry',Bank: 'Bank_B' } { _id:'...',user: 'B',Bank: 'Bank_A' } 我们有一个文件, doc = { user: 'B',Bank:
让我们有一个MongoDB集合有三个文档..

db.collection.find()

{ _id:'...',user: 'A',title: 'Physics',Bank: 'Bank_A' }
 { _id:'...',title: 'Chemistry',Bank: 'Bank_B' }
 { _id:'...',user: 'B',Bank: 'Bank_A' }

我们有一个文件,

doc = { user: 'B',Bank:'Bank_A' }

如果我们使用

db.collection.insert(doc)

这里,这个重复的文档将被插入到数据库中.

{ _id:'...',Bank: 'Bank_A' }

如何停止此副本.哪个领域应该建立索引或任何其他方法?

解决方法

不要使用插入.

使用update with upsert=true.更新将查找与您的查询匹配的文档,然后将修改所需的字段,然后,您可以告诉它:如果您希望在没有文档匹配您的查询时插入,则为True.

db.collection.update(
   <query>,<update>,{
    upsert: <boolean>,multi: <boolean>,writeConcern: <document>
   }
  )

所以,举个例子,你可以使用这样的东西:

db.collection.update(doc,doc,{upsert:true})

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读