Si está insertando un documento, MongoDB necesita verificar si el documento con el mismo ObjectId existe o no. Si existe, no se puede insertar el documento.
El mismo caso se aplica a Update. Necesita verificar si el documento existe o no. De lo contrario, no se puede realizar la actualización. El caso en el que su consulta de actualización se ralentizará es cuando no puede encontrar el documento según su ObjectId/campo indexado.
De lo contrario, el rendimiento para insertar/actualizar documentos debería ser el mismo.
Así que Insertar puede ser así //(Rápido)
- (Buscar documento -> No encontrado -> Insertar nuevo documento) De lo contrario
- (Buscar documento -> Encontrado -> No se puede insertar)
Y Actualizar con upsert (ObjectId disponible) //(Rápido)
- (Buscar documento -> No encontrado -> Insertar nuevo documento) De lo contrario
- (Buscar documento -> Encontrado -> Actualizar el documento)
O actualizar con upsert (sin ObjectId) //Esto es lento
- (Buscar ID de objeto (lento) -> No encontrado -> Insertar nuevo documento) De lo contrario
- (Buscar ObjectIds (lento)-> Encontrado -> Actualizar los documentos)