Comment augmenter avec mongodb-java-driver
Comment puis-je upsert données dans mongodb collection avec java-pilote?
J'essaie (avec vide de la collection):
db.getCollection(collection).update(new BasicDBObject("_id", "12"), dbobject, true, false);
Mais que le document a été créé avec _id == ObjectID(...). Pas avec "12" de la valeur.
Ce code (js) ajouter un document avec _id = "12" comme prévu
db.metaclass.update(
{ _id:12},
{
$set: {b:1}
},
{ upsert: true }
)
mongo-java-pilote-2.11.2
source d'informationauteur user1312837
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas définir
_id
sidbobject
est juste un document et ne contiennent pas d'une mise à jour de l'opérateur ex:$set
$setOnInsert
.Juste en passant un document remplacera le ensemble du document sens il ne définit pas un
_id
une tombe àObjectId
Donc votre exemple, vous pouvez utiliser une mise à jour de l'opérateur ex:
Si vous utilisez mongo-java driver 3à la suite de
.updateOne
méthode avec{upsert, true}
indicateur fonctionne.