English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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().
Il metodo update() aggiorna i valori dei documenti esistenti.
update()}La sintassi di base del metodo è la seguente-
>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)
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})}
save()Il metodo sostituisce il documento esistente con il nuovo documento trasmesso tramite il metodo save().
MongoDB save()La sintassi di base del metodo è come segue-
>db.COLLECTION_NAME.save({"_id":ObjectId(),NEW_DATA})
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"} >
findOneAndUpdate()Il metodo aggiorna i valori di un documento esistente.
findOneAndUpdate()La sintassi di base del metodo è la seguente-
>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)
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" }
Questo metodo aggiorna un singolo documento che corrisponde al filtro fornito.
La sintassi di base del metodo updateOne() è la seguente:
>db.COLLECTION_NAME.updateOne(<filter>, <update>)
> db.empDetails.updateOne( {First_Name: 'Radhika'}, { $set: { Age: '30',e_mail: '[email protected]'}} ) { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 0 } >
Il metodo updateMany() aggiorna tutti i documenti che corrispondono al filtro fornito.
La sintassi di base del metodo updateMany() è la seguente:
>db.COLLECTION_NAME.update(<filter>, <update>)
> 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"} >