English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Mise à jour de document MongoDB

MongoDB update()et save()Cette méthode est utilisée pour mettre à jour les documents dans la collection. La méthode update() met à jour les valeurs des documents existants, tandis que la méthode save() remplace le document existant par le document passé à la méthode save().

Méthode MongoDB Update()

La méthode update() met à jour les valeurs des documents existants. La méthode update() met à jour les valeurs des documents existants dans la collection, tandis que la méthode save() remplace le document existant par le document passé à la méthode save().

Syntaxe

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

>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

Exemple

Assumons que la collection mycol a les données suivantes.

{ "_id" : ObjectId(),5983548781331adf45ec5), "title":"introduction à MongoDB"
{ "_id" : ObjectId(),5983548781331adf45ec6), "title":"introduction à NoSQL"
{ "_id" : ObjectId(),5983548781331adf45ec7), "title":"nouveau tutoriel d'introduction"

Le suivant est un exemple qui met à jour le titre du document "MongoDB Overview" en "New MongoDB Tutorial".

>db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'nouveau tutoriel MongoDB'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 )
>db.mycol.find()
{ "_id" : ObjectId(),5983548781331adf45ec5), "title":"nouveau tutoriel MongoDB"
{ "_id" : ObjectId(),5983548781331adf45ec6), "title":"introduction à NoSQL"
{ "_id" : ObjectId(),5983548781331adf45ec7), "title":"nouveau tutoriel d'introduction"
>

Par défaut, MongoDB met à jour un seul document. Pour mettre à jour plusieurs documents, vous devez définir le paramètre "multi" sur true.

>db.mycol.update({'title':'Introduction à MongoDB'},
   {$set:{'title':'nouveau tutoriel MongoDB'}},{multi:true})

Méthode Save() de MongoDB

save()La méthode remplace le document existant avec le nouveau document passé en paramètre via la méthode save().

Syntaxe

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

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

Exemple

L'exemple suivant utilisera '_id'5983548781331adf45ec5'Remplacer le document.

   {
      "_id": ObjectId("507f191e810c19729de860ea 
		"title":"nouveau sujet de tutoriel",
      "by":"tutoriel de base"
   }
)
WriteResult({
	"nMatched" : 0,
	"nUpserted" : 1,
	"nModified" : 0,
	"_id": ObjectId("507f191e810c19729de860ea))
)
>db.mycol.find()
{"_id" : ObjectId("507f191e810c19729de860e6)), "title":"nouvelle introduction de tutoriel"
   "by":"Tutorials Point"
{"_id" : ObjectId("507f191e810c19729de860e6)), "title":"Introduction à NoSQL"
{"_id" : ObjectId("507f191e810c19729de860e6)), "title":"nouveau sujet de tutoriel"
>

Méthode findOneAndUpdate() de MongoDB

findOneAndUpdate()La méthode met à jour les valeurs des documents existants.

Syntaxe

findOneAndUpdate()La syntaxe de base de 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 suit-

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

L'exemple suivant met à jour les valeurs d'âge et d'e-mail du document nommé "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 updateOne() de MongoDB

Cette méthode met à jour un seul document correspondant 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 updateMany() de MongoDB

La méthode updateMany() met à jour tous les documents correspondant 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 }

Si vous utilisez la méthode find telle que montrée ci-dessous pour rechercher le contenu du document, vous pouvez voir les valeurs mises à jour-

> 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" : "Rachel_Christopher."}}[email protected]", "phone" : "9000054321" }
{"_id" : ObjectId("5dd6636870fb13eec3963bf7", "First_Name" : "Fathima", "Last_Name" : "Sheik", "Age" : "24", "e_mail" : "[email protected]", "phone" : "9000054321" }
>