Depuis upsert
est défini comme une opération qui "crée un nouveau document lorsqu'aucun document ne correspond aux critères de requête " il n'y a pas de place pour les upserts
dans insert
commande. C'est une option pour la update
commande. Si vous exécutez la commande comme ci-dessous, cela fonctionne comme une update
, si un document correspond à query
, ou sous forme d'insert
avec le document décrit par update
comme argument
.
db.collection.update(query, update, {upsert: true})
MongoDB 3.2 ajoute replaceOne
:
db.collection.replaceOne(query, replacement, {upsert: true})
qui a un comportement similaire, mais son replacement
ne peut pas contenir d'opérateurs de mise à jour.