2012-12-18 6 views
0

나는 이런 식으로 뭔가 보이는 몽고 컬렉션에서 문서가 있습니다몽고 문서에 저장 배열에서 값을 제거하면

{ 
    _id: [uuid] 
    prop: 
    some: "text", 
    subprop: ['foo', 'bar'] 
} 

내가 밖으로 전체 기록을 끌어하지 않으려을 수정 가능한 경우 다시 밀어 넣으십시오. 어떤 업데이트를 실행하여 'bar'doc.prop.subprop에서 제거했는데 저장 한 색인을 모르십니까?

감사합니다 :)

+2

'$ pull'하지 마십시오 :'dbcol.update ({}, {$ pull : { 'prop.subprop': 'bar'}})'? – Sammaye

답변

2

당신은 필드에서 특정 값을 끌어 할 수있는 $ 풀 연산자를 사용하여이 작업을 수행 할 수 있어야합니다. 당신은 subprop 필드받을 점 표기법을 사용하여 다음 구문을 사용하여 쿼리에 진실 : 당신이 컬렉션의 여러 문서에 대한 업데이트를 실행하려면

db.foo.update({ _id : [uuid] }, { $pull : { "prop.subprop" : "bar" } }); 

을, 당신은 멀티를 설정해야합니다

db.foo.update({ _id : [uuid] }, { $pull : { "prop.subprop" : "bar" } }, { multi : true }); 

즉, 컬렉션의 {_id : [uuid]}과 일치하는 모든 문서에서 업데이트 쿼리가 실행됩니다.

+0

완벽하게 대단히 감사합니다 :) 워드 프로세서의 모든 운영자를 시도했지만 그 중 하나가 나를 놓쳤음에 틀림 없습니다 :) –

관련 문제