线程“main”com中出现异常。mongodb。MongoException$DuplicateKey:{“serverUsed”:“localhost/127.0.0.1:27017”,“err”:“E11000 duplicate key error index:twitterdb03.LevelAFollowers。$id dup key:{:ObjectId('52d5636de408652b4853a8fe'),“code”:11000,“n”:0,“connectionId”:12,“ok”:1.0}
我正在使用mongo 2.11.1
java中的简单写操作从来没有问题
myMap.put(inid, followersList);
myObj.putAll(myMap);
myIdMapCollection.insert(myObj);
尝试调用myIdMapCollection。save(myObj)
而不是myIdMapCollection。插入(myObj)
与插入不同的是,保存方法会更新,这意味着如果文档包含
_id
,它会替换该文档。
我的猜测是,您使用游标|查询获取了
DBObject
,并对其进行了操作,您希望保留更改。在这种情况下,save
是正确的方法。
因此,当调用
insert
时,DBObject
已经与\u id
关联,调用insert
因此失败,因为集合中已经有一个具有该\u id
的文档,它应该是唯一的(重复索引错误)。
我在这页上找到了答案。我猜你的代码看起来像这样(大大简化了)?:
doc = {}
for i in xrange(2):
doc['i'] = i
collection.insert(doc)
问题是,如果\u id
字段不存在,PyMongo会在插入它之前向文档中注入一个_id字段(\u id
总是在客户端使用10gen驱动程序生成)。这意味着第一次通过循环\u id
是通过insert方法添加的。由于doc
是在循环外部定义的,因此循环的每个后续传递都使用相同的\u id
值。
解决方案:
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)
java中的简单写操作从来没有问题
我在一个djs机器人工作,我遇到了一个错误,我不知道如何修复我已经看了https://docs.mongodb.com/manual/indexes/和NodeJs,摩卡和猫鼬,但似乎没有什么帮助这里是信息- 错误发生在这里- 这是我的服务器模型/服务器架构- 最后,这是我得到的错误-
出于某种原因,我的应用程序不允许我创建多个配置文件。下面是服务文件中的设置: //这将查找配置文件(如果存在) //如果一个不存在的话,应该创建一个 它适用于第一个用户,但当我创建另一个用户时,我会得到错误:{“error”:{“message”:“MongoError:E11000重复键错误集合:TownMiner.profiles index:info.subs_1 dup key:{info
下面是模型中的架构- 这就是我在控制器中使用它的方式- 我就是这样把它保存在数据库里的- 错误- 我检查了数据库集合,没有这样的重复条目存在,让我知道我做错了什么? FYI-和正在获取值。 我也检查了这篇文章,但没有帮助堆栈链接 如果我完全删除,它就插入文档,否则它会抛出错误“重复”错误,即使我在local.email中有一个条目
在node.js,从一个javascript循环,我试图插入一个json对象到一个mongoDB集合,但得到重复的键错误_id列。 {MongoError:E11000重复密钥错误集合:app.Tab2017index:id dup-key:{:ObjectId('5cbc813227b2ca2864b3c66a')} 这是我的javascript代码的一部分,它导致了错误。 以上代码在控制台上显
问题内容: 我有一个带有唯一主键列的表。有时,当我执行查询时会收到错误消息,因为该值已被使用。 我可以使用和捕获此特定错误吗? 问题答案: 看起来mysql为重复的主键抛出了1062错误代码。您可以检查sql异常的错误代码: 注意,这种方法不是跨数据库供应商的,因为不同的供应商对于重复的PK可能具有不同的错误代码。