MongoDB - Documento de actualización

MongoDB's update() y save()Los métodos se utilizan para actualizar el documento en una colección. El método update () actualiza los valores en el documento existente mientras que el método save () reemplaza el documento existente con el documento pasado en el método save ().

Método MongoDB Update ()

El método update () actualiza los valores en el documento existente.

Sintaxis

La sintaxis básica de update() El método es el siguiente:

>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

Ejemplo

Considere que la colección mycol tiene los siguientes datos.

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}

El siguiente ejemplo establecerá el nuevo título 'Nuevo tutorial de MongoDB' de los documentos cuyo título es 'Descripción general de MongoDB'.

>db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>db.mycol.find()
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"New MongoDB Tutorial"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
>

De forma predeterminada, MongoDB actualizará solo un documento. Para actualizar varios documentos, debe establecer un parámetro 'multi' en verdadero.

>db.mycol.update({'title':'MongoDB Overview'},
   {$set:{'title':'New MongoDB Tutorial'}},{multi:true})

Método Save () de MongoDB

los save() El método reemplaza el documento existente con el nuevo documento pasado en el método save ().

Sintaxis

La sintaxis básica de MongoDB save() El método se muestra a continuación:

>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})

Ejemplo

El siguiente ejemplo reemplazará el documento con el _id '5983548781331adf45ec5'.

>db.mycol.save(
   {
      "_id" : ObjectId("507f191e810c19729de860ea"), 
		"title":"Tutorials Point New Topic",
      "by":"Tutorials Point"
   }
)
WriteResult({
	"nMatched" : 0,
	"nUpserted" : 1,
	"nModified" : 0,
	"_id" : ObjectId("507f191e810c19729de860ea")
})
>db.mycol.find()
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"Tutorials Point New Topic",
   "by":"Tutorials Point"}
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"NoSQL Overview"}
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"Tutorials Point Overview"}
>

Método findOneAndUpdate () de MongoDB

los findOneAndUpdate() El método actualiza los valores en el documento existente.

Sintaxis

La sintaxis básica de findOneAndUpdate() El método es el siguiente:

>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)

Ejemplo

Supongamos que hemos creado una colección llamada empDetails e insertado tres documentos en ella como se muestra a continuación:

> db.empDetails.insertMany(
	[
		{
			First_Name: "Radhika",
			Last_Name: "Sharma",
			Age: "26",
			e_mail: "[email protected]",
			phone: "9000012345"
		},
		{
			First_Name: "Rachel",
			Last_Name: "Christopher",
			Age: "27",
			e_mail: "[email protected]",
			phone: "9000054321"
		},
		{
			First_Name: "Fathima",
			Last_Name: "Sheik",
			Age: "24",
			e_mail: "[email protected]",
			phone: "9000054321"
		}
	]
)

El siguiente ejemplo actualiza la edad y los valores de correo electrónico del documento con el nombre 'Radhika'.

> db.empDetails.findOneAndUpdate(
	{First_Name: 'Radhika'},
	{ $set: { Age: '30',e_mail: '[email protected]'}}
)
{
	"_id" : ObjectId("5dd6636870fb13eec3963bf5"),
	"First_Name" : "Radhika",
	"Last_Name" : "Sharma",
	"Age" : "30",
	"e_mail" : "[email protected]",
	"phone" : "9000012345"
}

Método updateOne () de MongoDB

Este método actualiza un solo documento que coincide con el filtro dado.

Sintaxis

La sintaxis básica del método updateOne () es la siguiente:

>db.COLLECTION_NAME.updateOne(<filter>, <update>)

Ejemplo

> db.empDetails.updateOne(
	{First_Name: 'Radhika'},
	{ $set: { Age: '30',e_mail: '[email protected]'}}
)
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 0 }
>

Método updateMany () de MongoDB

El método updateMany () actualiza todos los documentos que coinciden con el filtro dado.

Sintaxis

La sintaxis básica del método updateMany () es la siguiente:

>db.COLLECTION_NAME.update(<filter>, <update>)

Ejemplo

> db.empDetails.updateMany(
	{Age:{ $gt: "25" }},
	{ $set: { Age: '00'}}
)
{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

Puede ver los valores actualizados si recupera el contenido del documento utilizando el método de búsqueda como se muestra a continuación:

> db.empDetails.find()
{ "_id" : ObjectId("5dd6636870fb13eec3963bf5"), "First_Name" : "Radhika", "Last_Name" : "Sharma", "Age" : "00", "e_mail" : "[email protected]", "phone" : "9000012345" }
{ "_id" : ObjectId("5dd6636870fb13eec3963bf6"), "First_Name" : "Rachel", "Last_Name" : "Christopher", "Age" : "00", "e_mail" : "[email protected]", "phone" : "9000054321" }
{ "_id" : ObjectId("5dd6636870fb13eec3963bf7"), "First_Name" : "Fathima", "Last_Name" : "Sheik", "Age" : "24", "e_mail" : "[email protected]", "phone" : "9000054321" }
>