English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MongoDB update()과 save()메서드는 문서를 컬렉션으로 업데이트합니다. update() 메서드는 기존 문서의 값을 업데이트하며, save() 메서드는 save() 메서드에 전달된 문서로 기존 문서를 대체합니다.
update() 메서드는 기존 문서의 값을 업데이트합니다.
update()기본 문법은 다음과 같습니다-
>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)
mycol 컬렉션에 다음과 같은 데이터가 있습니다.
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB 소개" { "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL 소개" { "_id" : ObjectId(5983548781331adf45ec7"title":" 새로운 튜토리얼 소개"
다음 예제는 제목이 “MongoDB Overview”인 문서의 제목을 “New MongoDB Tutorial”으로 설정합니다.
>db.mycol.update({'title':'MongoDB 소개'},{$set:{'title':' 새로운 MongoDB 튜토리얼'}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 ) >db.mycol.find() { "_id" : ObjectId(5983548781331adf45ec5), "title":" 새로운 MongoDB 튜토리얼" { "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL 소개" { "_id" : ObjectId(5983548781331adf45ec7"title":" 새로운 튜토리얼 소개" >
기본적으로 MongoDB는 하나의 문서만 업데이트합니다. 여러 문서를 업데이트하려면 매개변수 "multi"를 true로 설정해야 합니다.}}
>db.mycol.update({'title':'MongoDB 개요'}, {$set:{'title':'새로운 MongoDB 강의'}},{multi:true})
save()save() 메서드를 통해 새로운 문서를 기존 문서로 대체합니다.
MongoDB save()기본 문법은 다음과 같습니다-
>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
아래의 예제는 _id '5983548781331adf45ec5'문서를 대체하십시오。
>db.mycol.save( { "_id" : ObjectId("507f191e810c19729de860ea"), "title":"새로운 강의 주제", "by":"기본 강의" } ) WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : ObjectId("507f191e810c19729de860ea") ) >db.mycol.find() {"_id" : ObjectId("507f191e810c19729de860e6), "title":"새로운 강의 개요", "by":"Tutorials Point" {"_id" : ObjectId("507f191e810c19729de860e6), "title":"NoSQL 개요" {"_id" : ObjectId("507f191e810c19729de860e6), "title":"새로운 강의 주제" >
findOneAndUpdate()이 메서드는 기존 문서의 값을 업데이트합니다.
findOneAndUpdate()기본 문법은 다음과 같습니다-
>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)
추정해 보면 우리는 empDetails 이름의 콜렉션을 만들고 세 개의 문서를 그 안에 삽입했습니다.-
> 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" } ] )
이 예제에서는 이름이 "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(<filter>, <update>)
> db.empDetails.updateOne( {First_Name: 'Radhika'}, { $set: { Age: '30',e_mail: '[email protected]'}} ) { "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 0 } >
updateMany() 메서드는 주어진 필터와 일치하는 모든 문서를 업데이트합니다.
updateMany() 메서드의 기본 문법은 다음과 같습니다:
>db.COLLECTION_NAME.update(<filter>, <update>)
> db.empDetails.updateMany( {Age:{ $gt: "25" }}, { $set: { Age: '00'}} ) { "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }
만약 아래와 같이 find 메서드를 사용하여 문서 내용을 검색하면 업데이트된 값이 보입니다-
> 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" } >