DATABASE/MongoDB

[MongoDB] 기본적인 데이터 수정

잇나우 2020. 7. 28. 13:55
반응형

데이터 수정

데이터를 수정하려면 update 메소드를 사용한다

/* name이 eatnows인 데이터의 age의 값을 25로 수정 */
db.컬렉션이름.update( {name: "eatnows"}, {$set: {age: 25} })

document를 아예 새로운 document로 대체하고 싶을때는 $set연산자를 사용하지 않으면 된다.

/* name이 eatnows인 값을 name은 victory, age는 1로 변경 */
db.컬렉션이름.update( { name: "eatnows" }, { "name" : "victory", age: 1} )

데이터의 값은 완전 변경이 되었지만 데이터의 id값은 변경이 되지 않고 동일하다.

field 삭제

특정 field의 값을 삭제할 경우 $unset이라는 연산자를 사용한다.

 /* name이 eatnows인 데이터의 score 데이터를 삭제 */
db.컬렉션이름.update( {name: "eatnows"}, {$unset: {score: 1}})

upsert 옵션을 사용하여 수정할 데이터가 없다면 새로 데이터를 추가할 수 있다.

/* name이 eatnows인 데이터가 있으면 수정, 없으면 새로 추가한다. */
db.컬렉션이름.update( {name: "eatnows"}, {name:"eatnows", age: 20}, {upsert: true})

배열 field에 값 추가

배열에 원소를 추가할때는 $push 연산자를 사용한다.

db.컬렉션이름.update(
 {name: "eatnows"},
 {$push: { skills: "React"}}
)

여러개의 값을 추가하고 싶을때는 $push 연산자 다음에 $each 연산자를 사용하여 배열을 전달해주면 된다.

/* name이 eatnows인 document의 skills에 java와 javascript를 추가하고 알파벳 순으로 정렬 */
db.컬렉션이름.update(
 {name: "eatnows"},
 {$push: {
  skills: {
   $each: ["java", "javascript"],
   $sort: 1
  }
 }
)

배열 field에서 값을 제거

배열 field에서 값을 제거하고 싶을때는 $pull연산자를 사용한다.

db.컬렉션이름.update(
 {name: "eatnows"},
 {$pull: {skills: "mongodb"}}
)

값을 여러개 제거하고 싶을때는 $in연산자를 사용한다.

db.컬렉션이름.update(
 {name: "eatnows"},
 {$pull: {skills: {$in: ["java", "React"]}}}
)
반응형

'DATABASE > MongoDB' 카테고리의 다른 글

[MongoDB] 데이터 조회  (0) 2020.07.28
[MongoDB] 기본 명령어 (db, collection, document 생성 제거)  (0) 2020.07.28