MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB :mise à jour/upsert vs insertion

Si vous insérez un document, MongoDB doit vérifier si le document avec le même ObjectId existe ou non. S'il existe, le document ne peut pas être inséré.

Le même cas s'applique à la mise à jour. Il doit vérifier si le document existe ou non. Sinon, la mise à jour ne peut pas être effectuée. Le cas où votre requête de mise à jour ralentira est lorsqu'elle ne peut pas trouver de document basé sur votre ObjectId / champ indexé.

Sinon, les performances d'insertion/mise à jour du document devraient être les mêmes.

Donc Insert peut être comme ça //(Rapide)

  1. (Vérifier le document -> Introuvable -> Insérer un nouveau document) Sinon
  2. (Vérifier le document -> Trouvé -> Impossible d'insérer)

Et mettre à jour avec upsert (ObjectId disponible) //(Rapide)

  1. (Vérifier le document -> Introuvable -> Insérer un nouveau document) Sinon
  2. (Vérifier le document -> Trouvé -> Mettre à jour le document)

Ou Mettre à jour avec upsert (Sans ObjectId) //C'est lent

  1. (Find ObjectIds (Slow) -> Not Found -> Insert new document) Else
  2. (Find ObjectIds (Slow)-> Found -> Update the documents)