当前位置: 首页 > 知识库问答 >
问题:

得到“err”:“E11000使用Java驱动程序插入mongo时出现重复键错误

长孙燕七
2023-03-14

java中的简单写操作从来没有问题

myMap.put(inid, followersList);
myObj.putAll(myMap);
myIdMapCollection.insert(myObj);

共有1个答案

墨寂弦
2023-03-14

我在这一页上找到了答案。我猜您的代码看起来像这样(大大简化了)?:

doc = {} 
for i in xrange(2): 
    doc['i'] = i 
    collection.insert(doc) 

问题是,如果_id字段不存在,PyMongo在插入之前会将_id字段注入到文档中(_id始终是在客户端使用10gen驱动程序生成的)。这意味着第一次通过循环_id是通过insert方法添加的。由于doc是在循环外部定义的,因此每次通过循环的后续操作都对_id使用相同的值。

解决方案:

    null
for i in xrange(2): 
    doc['i'] = i 
    if '_id' in doc: 
        del doc['_id'] 
    collection.insert(doc)
from bson.objectid import ObjectId 
for i in xrange(2): 
    doc['i'] = i 
    doc['_id'] = ObjectId() 
    collection.insert(doc)
 类似资料:
  • 线程“main”com中出现异常。mongodb。MongoException$DuplicateKey:{“serverUsed”:“localhost/127.0.0.1:27017”,“err”:“E11000 duplicate key error index:twitterdb03.LevelAFollowers。$id dup key:{:ObjectId('52d5636de4086

  • 我正在使用mongojs和Node.js在mongob中插入一个文档。这是一个REST应用编程接口,只有一个mongojs实例(具有本地驱动器)。每次,有一个api调用,SAME mongojs对象用于执行mongob操作。现在,我在尝试插入文档时得到以下错误。 该文档总是唯一的,我尝试了,它显示索引在_id。有人能帮助我如何解决这个问题吗?

  • 将Spring Boot Starter Web依赖项与最新的MongoDB驱动程序3.11.0一起使用会给出以下错误。当我切换到旧版本的Mongo驱动程序(如3.8.2)时,这工作正常。有什么想法吗?我应该排除 Mongo 依赖项吗? 如果我删除Spring靴依赖项,Mongo连接可以正常工作。 下面的pom:

  • 问题内容: 我正在尝试使用servlet上的Java驱动程序连接到mlab上托管的MongoDB数据库。 问题是我遇到以下错误: 我看了一个答案(如何解决ClassNotFoundException:com.mongodb.connection.BufferProvider?),该答案向我强调了我需要其他jar,自从我下载了这些jar之后,仍然出现此错误。 我正在使用Eclipse并将这三个jar

  • 我使用下面的mongo查询来获取最高温度。有人能帮助我们如何使用mongo java驱动程序,使用和在java中实现吗?

  • 我的意图是创建4个Emp对象。2个对象(e1和e2)具有相同的哈希代码。因此,当插入e1(插入在e2之后)时,hashmap会意识到具有相同哈希值的对象已经存在(对象e2)。然后它会将槽中所有对象的键与相同的哈希值进行比较。如果它找到一个具有匹配键的对象(通过调用下面Emp类的equals方法),它将用新值替换旧值。 下面请看一下测试代码: 我期望的输出:替换的记录名称:Terry,年龄:60名称