2013-08-29 6 views
7

일부 몽고 문서를 대량 업데이트하려고합니다.

나는 그러나 문장의 어디 부분이 잘 작동의 source.expires-at 필드를 업데이트하지 않는 쿼리를

db.articles.update(
    { 
     'categories.id': ObjectId("51cd5272222wb6zs464fa4d9"), 
     'source.importer': 'pa' 
    }, 
    { 
     $set : 
      { 
       'source.expires-at': ISODate("2014-01-01T08:39:45Z") 
      } 
    } 
) 

이 쿼리를 사용하고 있습니다.

문서 구조는

{ 
    "_id": ObjectId("5211dc100000044707000015"), 
    "categories": { 
    "0": { 
     "id": ObjectId("51cd5272222wb6zs464fa4d9") 
    } 
    }, 
    "source": { 
    "importer": "pa", 
    "expires-at": ISODate("2013-09-18T08:49:32.0Z") 
    } 
} 
+0

는 일반적으로 사용자가 위치 연산자를 사용합니다하지만 그 때문에 다수의 하위 필드를 검색 여기에 작동하지 않습니다에

봐는 ... – Sammaye

+0

@Sammaye 위치 적 연산자는 배열 –

+0

@ErdalG입니다. 예, 나는 그가 물건 표상을 보여준 것을 보아서는 안된다. – Sammaye

답변

13

이 시도입니다 :

db.articles.update({ 'categories.id': ObjectId("51cd5272222wb6zs464fa4d9"), 'source.importer': 'pa'}, { $set : { 'source.expires-at': ISODate("2014-01-01T08:39:45Z") } }, {multi: true}) 

당신은 {멀티 : TRUE} 추가 옵션 인수를 전달해야합니다; 이 https://education.10gen.com/courses/10gen/M101JS/2013_August/courseware/CRUD/Multi-update/

+0

간단한 실수 .... 고마워. – user1954882

+0

환영합니다. 도움이 되었다면 대답을 수락하십시오 :) – Yalamber

관련 문제