2012-04-21 3 views
0

이 레코드에서 third_id를 바꾸는 방법 (하나의 문서 만 업데이트해야 함)?MongoDB 레코드에서 객체를 대체하는 방법은 무엇입니까?

> db.collection.find({"_id" : ObjectId("4f90cf0cd4bea011930001a3"), "first_id": ObjectId("4edf056800126757c000000f")}) { "second_id" : ObjectId("4f355e430012671d77000ec0"), "third_id" : ObjectId("4edf056800126757c000000f"), "note" : "blah-blah"} 

이와같이?

db.collection.update({ {"_id" : ObjectId("4f90cf0cd4bea011930001a3"), "third_id" : ObjectId("5edf056800126757c000000f")}, , true) 

자습서는 말한다 : db.collection.update (기준 objNew, upsert, 멀티)

인수 :

기준 - 업데이트 할 레코드를 선택 쿼리;

objNew - 업데이트 된 객체 또는 $ 사업자 (예를 들면, $의 INC) 오브젝트를 조작

upsert - 이것이 "upsert"동작해야하는지; 즉, 레코드가 존재하지 않으면 을 삽입하십시오. Upsert는 단일 문서 만 삽입합니다.

멀티 - 조건과 일치하는 모든 문서를 업데이트해야하는지 여부를 나타냅니다. 아래 $ 연산자를 사용하면 유용 할 수 있습니다.

답변

1

당신은 단지 하나의 문서를 업데이트 할 당신이 upsert을하려고하지 않습니다 그리고 당신은 전체 문서 만 하나 개의 필드를 교체하지 않기 때문에, 당신은 할 수 있습니다 :

db.collection.update({ {"_id" : ObjectId("4f90cf0cd4bea011930001a3"), 
         { $set : {"third_id" : ObjectId("5edf056800126757c000000f") } }) 
+0

감사합니다 ! 그것은 효과가 있었다. – Tyra

관련 문제