我正在使用mongojs和Node.js在mongob中插入一个文档。这是一个REST应用编程接口,只有一个mongojs实例(具有本地驱动器)。每次,有一个api调用,SAME mongojs对象用于执行mongob操作。现在,我在尝试插入文档时得到以下错误。
{
name: "MongoError"
err: "E11000 duplicate key error index: testdb.userComment.$_id_ dup key: { : ObjectId('51727190bb4ab52a80024c09') }"
code: 11000
n: 0
connectionId: 225
ok: 1
}
该文档总是唯一的,我尝试了db.userComment.getIndexs()
,它显示索引在_id。有人能帮助我如何解决这个问题吗?
这个问题似乎与这个问题重复:获取“err”:“E11000使用Java驱动程序插入mongo时出现重复密钥错误”
我在这个页面上找到了一个答案。我猜你的代码看起来像这样(大大简化)?:
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)
我不确定这是否是一个正确的解决方案,但每次插入文档时,我都会显式地创建一个新的ObjectID,而不是将命运留给mongodb驱动程序。我使用了下面的代码
注释数据。_id=要求('mongoDB')。BSONPure。ObjectID();
问题内容: 以下是我在模型中的架构- 这就是我在控制器中使用它的方式- 这就是我将其保存在数据库中的方式- 错误 - 我检查了数据库集合,没有这样的重复条目,让我知道我在做什么错吗? 仅供参考- 和被获取的值。 我也检查了这篇文章,但没有帮助STACK LINK 如果我将其完全删除,则它将插入文档,否则即使我在local.email中有条目,也会引发错误“ Duplicate”错误 问题答案: 错
为什么会出现此重复错误-? 提供的所有字段都不是空的。 架构: 职位: 错误: 创建新用户时出错:WriteError({“code”:11000,“index”:0,“errmsg”:“insertDocument::由引起::11000 E11000重复密钥错误索引:iotdb.users.$name_1 dup key:{:null}”,“op:{“username”:“tealou”,“p
问题内容: 为什么会出现此重复错误- ? 提供的所有字段都不为空。 架构: 发布: 错误: 创建新用户时出错:WriteError({:“ 11000,” index“:0,” errmsg“:” insertDocument ::由:: 11000 E11000重复键错误导致:iotdb.users。$ name_1 dup key:{: null}“,” op“:{”用户名“:” tealou
下面是模型中的架构- 这就是我在控制器中使用它的方式- 我就是这样把它保存在数据库里的- 错误- 我检查了数据库集合,没有这样的重复条目存在,让我知道我做错了什么? FYI-和正在获取值。 我也检查了这篇文章,但没有帮助堆栈链接 如果我完全删除,它就插入文档,否则它会抛出错误“重复”错误,即使我在local.email中有一个条目
java中的简单写操作从来没有问题
我在一个djs机器人工作,我遇到了一个错误,我不知道如何修复我已经看了https://docs.mongodb.com/manual/indexes/和NodeJs,摩卡和猫鼬,但似乎没有什么帮助这里是信息- 错误发生在这里- 这是我的服务器模型/服务器架构- 最后,这是我得到的错误-