MongoDB - Document de mise à jour

MongoDB update() et save()Les méthodes sont utilisées pour mettre à jour le document dans une collection. La méthode update () met à jour les valeurs dans le document existant tandis que la méthode save () remplace le document existant par le document passé dans la méthode save ().

MongoDB Update (), méthode

La méthode update () met à jour les valeurs dans le document existant.

Syntaxe

La syntaxe de base de update() la méthode est la suivante -

>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

Exemple

Considérez que la collection mycol contient les données suivantes.

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

L'exemple suivant définira le nouveau titre 'Nouveau tutoriel MongoDB' des documents dont le titre est 'Vue d'ensemble 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"}
>

Par défaut, MongoDB ne mettra à jour qu'un seul document. Pour mettre à jour plusieurs documents, vous devez définir un paramètre «multi» sur true.

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

MongoDB Save (), méthode

le save() remplace le document existant par le nouveau document passé dans la méthode save ().

Syntaxe

La syntaxe de base de MongoDB save() méthode est montrée ci-dessous -

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

Exemple

L'exemple suivant remplacera le document par le _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éthode MongoDB findOneAndUpdate ()

le findOneAndUpdate() met à jour les valeurs du document existant.

Syntaxe

La syntaxe de base de findOneAndUpdate() la méthode est la suivante -

>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)

Exemple

Supposons que nous ayons créé une collection nommée empDetails et y avons inséré trois documents comme indiqué ci-dessous -

> 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"
		}
	]
)

L'exemple suivant met à jour les valeurs d'âge et de courrier électronique du document avec le nom «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éthode MongoDB updateOne ()

Cette méthode met à jour un seul document qui correspond au filtre donné.

Syntaxe

La syntaxe de base de la méthode updateOne () est la suivante -

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

Exemple

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

Méthode MongoDB updateMany ()

La méthode updateMany () met à jour tous les documents qui correspondent au filtre donné.

Syntaxe

La syntaxe de base de la méthode updateMany () est la suivante -

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

Exemple

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

Vous pouvez voir les valeurs mises à jour si vous récupérez le contenu du document en utilisant la méthode find comme indiqué ci-dessous -

> 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" }
>