English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MongoDB update()e save()Usado para atualizar documentos para a coleção. O método update() atualiza os valores dos documentos existentes, enquanto o método save() substitui o documento existente pelo documento passado no método save().
O método update() atualiza os valores dos documentos existentes.
update()A sintaxe básica do método é a seguinte-
>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)
Supondo que o conjunto mycol tenha os seguintes dados.
{ "_id": ObjectId(5983548781331adf45ec5), "title": "introdução ao MongoDB" { "_id": ObjectId(5983548781331adf45ec6), "title": "introdução ao NoSQL" { "_id": ObjectId(5983548781331adf45ec7)), "title": "introdução ao novo tutorial"
O exemplo a seguir define o título do documento "visão geral MongoDB" para o novo título "novo tutorial MongoDB".
>db.mycol.update({'title': 'visão geral MongoDB'}, {$set: {'title': 'novo tutorial MongoDB'}}) WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 ) >db.mycol.find() { "_id": ObjectId(5983548781331adf45ec5), "title": "novo tutorial MongoDB" { "_id": ObjectId(5983548781331adf45ec6), "title": "introdução ao NoSQL" { "_id": ObjectId(5983548781331adf45ec7)), "title": "introdução ao novo tutorial" >
Por padrão, o MongoDB atualiza apenas um documento. Para atualizar vários documentos, você precisa definir o parâmetro "multi" como true.
>db.mycol.update({'title':'introdução a NoSQL'}, {$set:{'title':'novo tutorial MongoDB'}},{multi:true})
save()O método usa o documento novo passado no método save() para substituir o documento existente.
MongoDB save()A sintaxe básica é a seguinte-
>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
O exemplo a seguir usará '_id'5983548781331adf45ec5'substituir documento.
{ "_id" : ObjectId("507f191e810c19729de860ea "title":"novo tópico do tutorial", "por":"tutorial básico" } WriteResult({ "nMatched": 0, "nUpserted": : 1, "nModified": 0, "_id" : ObjectId("507f191e810c19729de860ea) ) >db.mycol.find() {"_id" : ObjectId("507f191e810c19729de860e6), "title":"nova introdução ao tutorial" "por":"Tutorials Point" {"_id" : ObjectId("507f191e810c19729de860e6), "title":"introdução a NoSQL" {"_id" : ObjectId("507f191e810c19729de860e6), "title":"novo tópico do tutorial" >
findOneAndUpdate()O método atualiza os valores de um documento existente.
findOneAndUpdate()A sintaxe básica do método é a seguinte-
>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)
Supondo que criamos um conjunto chamado empDetails e inserimos três documentos, conforme mostrado a seguir-
> db.empDetails.insertMany( [ { Primeiro Nome: "Radhika", Nome: "Sharma", Idade: "26", e_mail: "[email protected]", phone: "9000012345" }, { Primeiro Nome: "Rachel", Nome: "Christopher", Idade: "27", e_mail: "[email protected]", phone: "9000054321" }, { Primeiro Nome: "Fathima", Nome: "Sheik", Idade: "24", e_mail: "[email protected]", phone: "9000054321" } ]
以下示例更新名称为“ 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" }
此方法更新与给定过滤器匹配的单个文档。
updateOne()方法的基本语法如下:
>db.COLLECTION_NAME.updateOne(, )
> db.empDetails.updateOne( {First_Name: 'Radhika'}, { $set: { Age: '30',e_mail: '[email protected]'}} 1, "modifiedCount" : 0 } >
25 { \ 2, \ 2 }
Se usar o método find como mostrado a seguir para buscar o conteúdo do documento, então é possível ver os valores atualizados-
> db.empDetails.find() {"_id" : ObjectId("5dd6636870fb13eec3963bf5"), \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" } >