> db.movies.deleteOne({"_id" : 4})
> db.movies.deleteOne({"year" : 1995})
갱신은 원자적으로 이루어짐 → 갱신 요청 두 개가 동시발생하는 경우 먼저 도착한 요청이 적용된 후 다음 요청이 적용됨
replaceOne → 첫번째 매개변수는 유일한 조건절로 구성되어야한다.
> db.users.replaceOne({"name" : "joe"}, joe)
갱신 연산자(값 자체에 대한 변경) → 갱신 도큐먼트는 갱신 연산자를 항상 포함해야함.
// $inc 카운터 값 증가
> db.analytics.updateOne({"url" : "www.example.com"}, {"$inc" : {"pagebiews" : 1}})
// 필드 값 설정 -> 필드값이 존재하지 않으면 새 필드가 생성됨. 스키마를 갱신하거나 사용자 정의 키를 추가할 때 편리
> db.users.updateOne({"_id" : 4}, {"$set" : {"favorite book" : "War and peace"}})
// 데이터 타입도 변경가능
> db.users.updateOne({"_id" : 4}, {"$set" : {"favorite book" : ["War and peace"]}})
// $unset으로 키-값 모두 제거 가능
// $push 배열 요소 추가
> db.blog.posts.updateOne({"_id" : 4}, {"$push" : {"content" : {"name" : "bob"}}})
// $each -> iterator
// $slice -> 배열의 최대 갯수 유지(queue)
// $sort -> 정렬
> db.movies.updateOne({"genre" : "horror"},
{"$push" : {"topl0" : {"$each" :
[
{"name" : "Nightmare on Elm Street", "rating" : 6.6},
{"name" : "Saw", "rating" : 4.3}
], "$slice" : -10, "$sort" : {"rating" : -1}}}})
// $ne -> not equals -> 조건에 해당하는 데이터가 없다면
> db.papers.updateOne({"authors cited" : {"$ne" : "Richie"}}, {$push : {"authors cited" : "Richie"}})
// $addToSet -> 중복을 피하고 배열에 요소 추가
> db.users.updateOne({"_id" : Objectld("4b2d75476cc613d5ee930164")}, {"$addToSet" : {"emails" : {"$each" :
["[email protected]", "[email protected]", "[email protected]"]}}})
// $pop -> 1(마지막요소), -1(첫번째요소) 부터 제거하는 방법 => stack 비슷
> {"$pop" : {"key" : 1}}
// $pull -> 주어진 조건에 맞는 요소 제거
> db.lists.updateOne({}, {"$pull" : {"todo" : "laundry"}})