I'm trying to build MongoDB Java findAndModify query.
The main purpose is that I would like to set _id in insert query by myself.
Here is my code:
BasicDBObject findFilter = new BasicDBObject("type", "group")
//
BasicDBObject dialogInsertObject = new BasicDBObject("name", "my group").append("_id", new ObjectId());
//
BasicDBObject dialogUpdateObject = new BasicDBObject("name", "my group");
//
BasicDBObject upsertMap = new BasicDBObject();
upsertMap.append("$setOnInsert", dialogInsertObject);
upsertMap.append("$set", dialogUpdateObject);
DBObject dialogObject = dialogCollection.findAndModify(findFilter,
new BasicDBObject("_id", "1"), null, false, upsertMap, true, true);
And I get an error:
com.mongodb.CommandFailureException: { "serverUsed" : "localhost:27017" ,
"errmsg" : "exception: Cannot update 'name' and 'name' at the same time" ,
"code" : 16836 , "ok" : 0.0}
Can somebody help please