Exception in thread "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}
I'm using mongo 2.11.1
Never had problems with simple write operations in java
myMap.put(inid, followersList);
myObj.putAll(myMap);
myIdMapCollection.insert(myObj);
I found an answer on this page. I’m guessing your code looks something like this (greatly simplified)?:
doc = {}
for i in xrange(2):
doc['i'] = i
collection.insert(doc)
The problem is that PyMongo injects an _id field into the document, if the _id
field does not exist, before inserting it (_id
is always generated client side with 10gen drivers). That means that the first time through the loop _id
is added by the insert method. Since doc
is defined outside the loop, each subsequent pass through the loop uses the same value for _id
.
Solution:
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)