我在试图向一个空的mongodb集合进行批量插入时,遇到了以下错误:
pymongo.errors.DuplicateKeyError: E11000重复键错误索引: cmdDistros.locDistro.$id dup key: { : ObjectId('51dac9d0c74cd81acd85c0fd') }
我没有在创建任何文档时指定_id,因此MongoDB应该正确地创建唯一索引。这是我使用的代码:
#Populate database with uniform distribution
entries = []
for coor in freeIndices:
for theta in range(360):
entry = {"x" : coor[0], "y" : coor[1], "heading" : theta}
for i in range(numData):
entry["data" + str(i)] = 1./numData
entries.append(entry)
print "Entries created, loading into database..."
locDistro.insert(entries)
将命运掌握在自己手中,我尝试使用以下方法创建自己的索引:
#Populate database with uniform distribution
entries = []
idNum = 0
for coor in freeIndices:
for theta in range(360):
print idNum
entry = {"_id" : idNum, "x" : coor[0], "y" : coor[1], "heading" : theta}
idNum += 1
for i in range(numData):
entry["data" + str(i)] = 1./numData
entries.append(entry)
print "Entries created, loading into database..."
locDistro.insert(entries, manipulate = False)
在创建文档时,打印语句显示了每个idnum,它们都是唯一的并按预期递增。然而,在插入文档时,我收到了错误信息:
pymongo.errors.DuplicateKeyError: E11000 duplicate key error index: cmdDistros.locDistro.$id dup key: { : 0 }
只有一个文档被插入到我的数据库中。
我完全被难住了,有人知道为什么会发生这种情况吗?