【问题标题】:Error 11000 in Mongo Java, DuplicateKeyExceptionMongo Java 中的错误 11000,DuplicateKeyException
【发布时间】:2018-02-22 22:41:54
【问题描述】:

我有一段代码,如下所示,并且在 Java 中遇到了这个错误。 coll 是我需要插入数据的集合。我希望 mongodb 会自动生成 id,所以将相同的数据(在 for 循环中)放在一起并不重要,但我得到了那个错误。我该怎么办?

     //   String json1 = XML.toJSONObject(xml_text).toString();
     //   DBObject dbo = (DBObject) com.mongodb.util.JSON.parse(json1);
     //   List<DBObject> list = new ArrayList<>();
     //   list.add(dbo);

        for (int i = 0; i < 5000; i++) {
            coll.insert(list);
        }

db.collection.getIndexes 返回

switched to db ice
> db.next.getIndexes()
[
    {
            "v" : 2,
            "key" : {
                    "_id" : 1
            },
            "name" : "_id_",
            "ns" : "ice.next"
    }
]
>

【问题讨论】:

  • 您是否尝试将具有不同_id 的相同数据插入到数据库中?
  • 我只是插入相同的数据,并且每次我这样做时都希望 mongodb 使用不同的 id,是的。
  • 我认为您可能已经指定您插入的 coll 数据在架构中是唯一的,因此这会引发重复的条目代码为 11000
  • 我应该怎么做才能仍然使用自动生成的_ids?
  • 你能不能尝试在你的list对象中去掉_id,然后如果mongo每次都为它生成一个新的id,则插入该对象。

标签: java mongodb mongodb-query mongo-java mongo-java-driver


【解决方案1】:

已解决。我在循环中使用了相同的 DBObject,因此出现了错误。现在在循环内创建一个,没有问题。谢谢大家。

【讨论】:

    猜你喜欢
    • 2018-02-02
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2013-08-04
    • 2013-08-03
    • 2021-02-11
    • 2013-07-31
    • 2021-06-13
    相关资源
    最近更新 更多