[컴][db] mongodb 에서 기존의 값을 이용해서 update 하는 방법

 

기존의 값을 이용해서 update / 다른 field 값을 이용해서 update / 업데이트 / 몽고db / query

mongodb 에서 기존의 값을 이용해서 update 하는 방법

ref.1 에서 아래와 같이 이야기 한다.

Using the aggregation pipeline allows for a more expressive update statement, such as expressing conditional updates based on current field values or updating one field using the value of another field(s).

위 문서에서도 이야기 하듯이, aggregation 을 이용해서 현재값을 기반으로 새로운 값을 update 하거나, 다른 field 의 값을 이용해서 update 할 수 있다.

주의할 점은 aggregation 이기에 [] 를 써야한다는 것이다.

2개의 update 동작도 같이 실행할 수 있다.

// mycoll
{ _id: 1, test: [1,2,3], testval: 5}

// query
// myid 에 _id 값을 넣고(field 가 없으면 생성), testval2 에는 testval 을 넣는다.
db.mycoll.update(
  { testval : {$ne: 5}},
  [
    { $set : {myid: "$_id"} },
    { $set : {testval2: "$testval"}}
  ]
)

더 많은 예제는 ref.1 에서 볼 수 있다.

See Also

  1. MongoDB Update Document using existing value - Stack Overflow

Reference

  1. Updates with Aggregation Pipeline — MongoDB Manual

댓글 없음:

댓글 쓰기