English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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().
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().
update()La syntaxe de base de la méthode est la suivante-
>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)
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})
save()La méthode remplace le document existant avec le nouveau document passé en paramètre via la méthode save().
MongoDB save()La syntaxe de base de la méthode est la suivante-
>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
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" >
findOneAndUpdate()La méthode met à jour les valeurs des documents existants.
findOneAndUpdate()La syntaxe de base de la méthode est la suivante-
>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)
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" }
Cette méthode met à jour un seul document correspondant au filtre donné.
La syntaxe de base de la méthode updateOne() est la suivante :
> 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 } >
La méthode updateMany() met à jour tous les documents correspondant au filtre donné.
La syntaxe de base de la méthode updateMany() est la suivante :
> db.COLLECTION_NAME.update(<filter>, <update>)
> 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" } >