2014-04-17 2 views
1

Salam (Hello를 의미) :mongodb에서 중첩 된 객체의 필드를 업데이트하는 방법은 무엇입니까?

나는 node-mongodb-native 드라이버를 사용하고 있으며 배열에 저장된 객체의 특정 필드를 업데이트해야합니다. 이 내 MongoDB의 컬렉션에서 샘플 문서입니다 :

{ 
    "fields" : [ 
     { 
      "en" : "birthDate", 
      "status" : "enable", 
      "index" : 10 
     },{ 
      "en" : "email", 
      "status" : "enable", 
      "index" : 4 
     },{ 
      "en" : "inviterCode", 
      "status" : "enable", 
      "index" : 2 
     } 
    ] 
} 

이 나의 새로운 데이터입니다 : 당신이 볼 수 en 필드가 일치하는 경우, status 필드가

var newData = [ 
    { 
     "en" : "birthDate", 
     "status" : "disable", 
    },{ 
     "en" : "email", 
     "status" : "disable", 
    } 
]; 

를 업데이트해야합니다. 다음 쿼리가 단일 업데이트에 작동하지만 단일 쿼리로 여러 업데이트를 수행하려면 어떻게해야합니까?

collection.update(
    {'fields.en': 'birthDate'}, 
    {$set:{'fields.$.status': 'disable'}}, 
    {w:1, multi: true}, 
    function(error, count){ 

    } 
); 

답변

0

하나의 업데이트를 사용하는 것은 불행히도 불가능합니다. 이것을 위해 MongoDB에는 open ticket이 있습니다.

이제 프로그래밍 방식으로 (예 : 관련 색인을 찾기 위해 배열을 반복)해야합니다.

관련 문제