2012-04-08 1 views

답변

5

나는이 질문을 mongodb 사용자 그룹에게 물었습니다. 대답은 불가능했기 때문에 이것은 issue입니다.

+4

이 문제는 MongoDB 2.4에서 끝났으며 이제 ['$ setOnInsert'] (http://docs.mongodb.org/manual/reference/operator)를 사용할 수있다./setOnInsert /). – str

14

Update 명령에서 upsert option을 찾고 있습니다. 문서는 여기 충분해야합니다.

+0

사례를 제공해 주시겠습니까? 이미 여러 옵션 조합을 시도했지만 삽입시 설정할 필드를 선택할 수는 없지만 업데이트시에는 제외됩니다. –

+0

첫 번째 삽입시에만 설정되는 필드가 있지만 업데이트가 적용되지 않는 필드가 있습니다. –

+0

'update' 부분의 일부 대신'query' 부분의'Y' 부분을 만들어야합니다. –

1

$setOnInsert

에서 나는 대신에 "MYTABLE"의 "MyCollection"를 부를 것이다. 다음 수행 할 수 있습니다
db.mycollection.update(
    { MyUniqueKey: "?" }, 
    { 
     $set: {"y": "?"}, 
     $setOnInsert: { 
      MyUniqueKey: "?", 
      "x": "?", 
    }, 
    { upsert: true } 
) 

은 기본적으로 $ 세트 문서가 존재하지 않는 경우를 제외하고, 항상 실행됩니다. 그런 다음 $ setOnInsert가 실행됩니다.