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

MongoDB 更新文檔

MongoDB update()}E save()Il metodo viene utilizzato per aggiornare i documenti della collezione. Il metodo update() aggiorna i valori dei documenti esistenti, mentre il metodo save() sostituisce il documento esistente con il documento passato al metodo save().

Metodo Update() di MongoDB

Il metodo update() aggiorna i valori dei documenti esistenti.

Sintassi

update()}La sintassi di base del metodo è la seguente-

>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

Esempio

Supponiamo che la raccolta mycol abbia i seguenti dati.

{"_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB 简介"}
{"_id" : ObjectId(5983548781331adf45ec6), "title":"Introduzione a NoSQL"}
{"_id" : ObjectId(5983548781331adf45ec7), "title":"Nuovo riassunto del tutorial"}

Esempio: Il documento con il titolo "MongoDB Overview" viene impostato con il nuovo titolo "New MongoDB Tutorial".

>db.mycol.update({'title':'MongoDB 简介'},{$set:{'title':'Nuovo tutorial MongoDB'}})
WriteResult({"nMatched" : 1, "nUpserted" : 0, "nModified" : 1})
>db.mycol.find()
{"_id" : ObjectId(5983548781331adf45ec5), "title":"Nuovo tutorial MongoDB"}
{"_id" : ObjectId(5983548781331adf45ec6), "title":"Introduzione a NoSQL"}
{"_id" : ObjectId(5983548781331adf45ec7), "title":"Nuovo riassunto del tutorial"}
>

Per impostazione predefinita, MongoDB aggiorna solo un documento. Per aggiornare più documenti, è necessario impostare il parametro "multi" su true.

>db.mycol.update({'title':'MongoDB 简介'},
   {$set:{'title':'Nuovo tutorial MongoDB'},{multi:true})}

Metodo Save() di MongoDB

save()Il metodo sostituisce il documento esistente con il nuovo documento trasmesso tramite il metodo save().

Sintassi

MongoDB save()La sintassi di base del metodo è come segue-

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

Esempio

Esempio di sostituzione del documento con _id '5983548781331adf45ec5'.

>db.mycol.save(
   {
      "_id" : "507f191e810c19729de860ea",), 
		"title":"Nuovo argomento del tutorial",
      "by":"Manuale di base"
   }
)
WriteResult({
	"nMatched" : 0,
	"nUpserted" : 1,
	"nModified" : 0,
	"_id" : ObjectId("507f191e810c19729de860ea")
)
>db.mycol.find()
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"nuovo sommario del tutorial",
   "by":"Tutorials Point"}
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"Introduzione a NoSQL"}
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"nuovo argomento del tutorial"}
>

Metodo findOneAndUpdate() di MongoDB

findOneAndUpdate()Il metodo aggiorna i valori di un documento esistente.

Sintassi

findOneAndUpdate()La sintassi di base del metodo è la seguente-

>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)

Esempio

Supponiamo di aver creato una raccolta chiamata empDetails e di aver inserito tre documenti come segue-

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

Esempio di aggiornamento dei valori età e email del documento con il nome “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"
}

Metodo updateOne() di MongoDB

Questo metodo aggiorna un singolo documento che corrisponde al filtro fornito.

Sintassi

La sintassi di base del metodo updateOne() è la seguente:

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

Esempio

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

Metodo updateMany() di MongoDB

Il metodo updateMany() aggiorna tutti i documenti che corrispondono al filtro fornito.

Sintassi

La sintassi di base del metodo updateMany() è la seguente:

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

Esempio

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

Se si utilizza il metodo find come mostrato di seguito per cercare i contenuti dei documenti, è possibile vedere i valori aggiornati-

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