2014-04-14 2 views
1

MongoDB 2.6에서는 문서에 배열을 업데이트하는 동안 배열의 위치를 ​​지정하기 위해 $position (http://docs.mongodb.org/master/reference/operator/update/position/) 수정자를 사용할 수 있습니다. 그러나 하위 문서 배열에 삽입하고 싶습니다.서브 디렉토리에있는 배열의 임의의 위치에 요소를 푸시

문서 스키마

{ 
    subdoc: { 
    array: ['0', '1', '2', '5', '6'] 
    } 
} 

다음 업데이트가 array의 끝의 요소를 밀어 ..

db.collection.update(
    { _id: tsId }, 
    {$push: { 'subdoc.array': { $each:['3', '4'], $position:3 } }}); 

그래서, 결과는

{ 
    subdoc: { 
    array: ['0', '1', '2', '5', '6', '3', '4'] 
    } 
} 

입니다하지만

기대
{ 
    subdoc: { 
    array: ['0', '1', '2', '3', '4', '5', '6'] 
    } 
} 

MongoDB 2.6에서도 가능합니까?

+1

새 연산자의 올바른 사용 예 –

답변

3

귀하의 질문에 공정한 명제가 있지만 기본적으로 개념이 잘못되었습니다.

그 중 첫 번째

당신이해야한다 그래서 당신의 "위치"는이 경우 하나의 단위에 의해이며, 일반적으로 배열의 첫 번째 요소에 대한 0의 인덱스부터 시작하여 자신의 항목이 개념을 놓치고있는 것입니다 예 :

이제 올바른 위치에 삽입 했으므로 요소가 올바른 위치에 있습니다.

관련 문제