mongodb의 insert()는 id의 duplicate 체크를 진행하지만, save()는 동일 id값이 들어오면 update를 한다. 그리고 save() 함수 변경시 변경/추가 여부를 결과값으로 알려준다.



part에 staf오타를 쳐서 staff로 수정하는 예제이다. 


> db.user.insert({ "_id" : 4, "name" : "jackson", "part" : "staf", "title" : "lab" })

WriteResult({ "nInserted" : 1 })

> db.user.insert({ "_id" : 4, "name" : "jackson", "part" : "staff", "title" : "lab" })

WriteResult({

"nInserted" : 0,

"writeError" : {

"code" : 11000,

"errmsg" : "E11000 duplicate key error index: test.user.$_id_ dup key: { : 4.0 }"

}

})




> db.user.save({ "_id" : 5, "name" : "matt", "part" : "staf", "title" : "lab" })

WriteResult({ "nMatched" : 0, "nUpserted" : 1, "nModified" : 0, "_id" : 5 })

> db.user.save({ "_id" : 5, "name" : "matt", "part" : "staff", "title" : "lab" })

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })




결과 확인 


> db.user.find()

{ "_id" : 4, "name" : "jackson", "part" : "staf", "title" : "lab" }

{ "_id" : 5, "name" : "matt", "part" : "staff", "title" : "lab" }

Posted by '김용환'
,