2013-07-15 5 views
1

기존의 몽고 문서에 새 필드를 추가하려고합니다.기존 몽고 문서에 필드 추가하기

{ 
    "_id" : ObjectId("51e390ade4b0a29154453698"), 
    "group_name" : "om", 
    "target_audience" : { 
     "gender" : "male", 
     "section" : "Item 4", 
     "catagory" : "Eletronics", 
     "location" : { 
      "country" : "Item 3", 
      "state" : "Item 3", 
      "city" : "Item 4" 
     } 
    } 
} 

이 내 문서가이 박사님에 좀 더 필드 code.But를 다음 대신이 이전을 대체 동일한 문서에 레코드를 추가 쓰기 추가 할 .I입니다. 내 자바 코드는 다음과 같습니다 여기 http://docs.mongodb.org/manual/core/update/#add-a-new-field-to-a-document 광범위한 문서가 있습니다

BasicDBObject doc=new BasicDBObject(); 
     BasicDBObject q=new BasicDBObject("group_name",selectedgn); 
     doc.put("date_from",frm); 
     doc.put("date_too",too); 
     doc.put("description",desc); 
     doc.put("url",url); 
     BasicDBObject doc1=new BasicDBObject(); 
     doc1.put("Notification",doc); 
     con.coll.update(q,doc1); 
+0

당신은 걸릴해야 볼 [$ set] (http://docs.mongodb.org/manual/reference/operator/set/) 연산자. –

답변

3

다른 사람들도 말했듯이 $ set 연산자를 사용하십시오. 그냥 알림 하위 문서의 필드를 업데이트 할 경우,

BasicDBObject doc=new BasicDBObject(); 
BasicDBObject q=new BasicDBObject("group_name",selectedgn); 
doc.put("date_from",frm); 
doc.put("date_too",too); 
doc.put("description",desc); 
doc.put("url",url); 
BasicDBObject doc1=new BasicDBObject(); 
doc1.put("Notification",doc); 
con.coll.update(q,new BasicDBObject("$set",doc1)); 

또는 : 다음과 같아야합니다 코드는 (내가 마지막 행을 변경)

BasicDBObject doc=new BasicDBObject(); 
BasicDBObject q=new BasicDBObject("group_name",selectedgn); 
doc.put("Notification.date_from",frm); 
doc.put("Notification.date_too",too); 
doc.put("Notification.description",desc); 
doc.put("Notification.url",url); 
con.coll.update(q,new BasicDBObject("$set",doc)); 
0

이 이전 특성을 대체해서는 안된다.

+0

동일한 Mongodb 클라이언트에서 작성할 수 있습니다. 그러나 자바 드라이버에서 시도했을 때 $ set에 에러가 발생했습니다. –

+0

어떤 오류가 발생합니까? 위의 코드 스 니펫이 작동합니다. db.sotest.insert 전 (_ {ID : 1 GROUP_NAME "그룹 1"shouldbethere : 1}) { "date_from > db.sotest.find() { "통지 "뒤에 ": ISODate ("2013-07-16T19 : 11 : 40.686Z "), "date_too ": ISODate ("2013-07-16T19 : 11 : 40.686Z "), "설명 ":"desc ", ""group1", "group1", "shouldbethere": 1 } –

관련 문제