2013-02-05 3 views
-2

같은 문서의 여러 위치에서 업데이트 :MongoDB를 -이 같은 문서 뭔가가

myDoc : { 
    _id : a101 
    name : John, 
    batch : [{ 
     _id : batch101, 
     value : physics 
    },{ 
     _id : batch102, 
     value : chemistry 
    },{ 
     _id : batch103, 
     value : maths 
    }] 
} 

내가 batch._id는 "batch101"중 하나입니다 "값"을 "컴퓨터"를 업데이트 할을 또는 "batch102"(batch103이 아님).

도와주세요! 미리 감사드립니다. 시킴으로 빨리 질문에 대한 의견에서 언급 한 바와 같이

-Manish :

+2

이 문제를 해결하려고 시도한 내용을 알려주십시오. –

+0

위치 연산자가 실제로 발견 된 하위 문서와 실제로 일치하기 때문에 불행히도 위치 연산자 나 원자 적 업데이트를 사용하여이 문제를 해결할 수는 없습니다. Atm 나는 이것을 클라이언트 측에서 수행 한 다음 데이터베이스로 다시 전송해야한다고 생각합니다. – Sammaye

+1

Sammaye가 지적했듯이이를 해결하는 가장 쉬운 방법은 클라이언트에서 문서를 변경 한 다음이 수정 된 문서로 업데이트하는 것입니다. – ACE

답변

0

, 여기에 가장 좋은 방법은 클라이언트 측에서 문서 작업을 할 수 있습니다. 이 단계를 몇 단계로 나눌 것입니다.

1) 문서를 쿼리합니다. 노드에서 작업하고 있다고 언급 했으므로 JSON에 표현됩니다. (이 코드는

for(i = 0; i < x.batch.length; i++) { 
    if(x.batch[i]._id == 'batch101') { 
     //do something 
    } 
} 

분명 완전하지 않다, 그러나 당신의 아이디어를 제공

: 업데이트 할 요소를 찾는 문서를 통해 이동)이 변수 X

2 호출 할 수 있습니다,이처럼 보일 수 있습니다 원하는 것)

3) 이제이 변경된 문서를 사용하여 mongoDB에서 이전 문서를 업데이트하십시오.

이 프로세스를 통해 배치 목록의 특정 요소를 업데이트 할 수 있습니다.

+0

나는 그것을 얻었다, thanks :) –