MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Qual é a diferença entre replaceOne() e updateOne() no MongoDB?


Com replaceOne() você só pode substituir o documento inteiro, enquanto updateOne() permite a atualização de campos.

Desde replaceOne() substitui todo o documento - os campos do documento antigo não contidos no novo serão perdidos. Com updateOne() novos campos podem ser adicionados sem perder os campos do documento antigo.

Por exemplo, se você tiver o seguinte documento:
{
   "_id" : ObjectId("0123456789abcdef01234567"),
   "my_test_key3" : 3333
}

Usando:
replaceOne({"_id" : ObjectId("0123456789abcdef01234567")}, { "my_test_key4" : 4})

resulta em:
{
   "_id" : ObjectId("0123456789abcdef01234567"),
   "my_test_key4" : 4.0
}

Usando:
updateOne({"_id" : ObjectId("0123456789abcdef01234567")}, {$set: { "my_test_key4" : 4}})

resulta em:
{
   "_id" : ObjectId("0123456789abcdef01234567"),
   "my_test_key3" : 3333.0,
   "my_test_key4" : 4.0
}

Observe que com updateOne() você pode usar os operadores de atualização em documentos.