2013-08-06 4 views
0

문서에 여러 하위 문서를 추가하고 싶습니다.문서에 하위 문서 추가

올바른 추가 방법은 무엇입니까?

db.document.update({'_id':99999},{$set:{'student':{'name':'Jack','marks':90}}}) 
db.document.update({'_id':99999},{$set:{'student':{'name':'Jill','marks':75}}}) 

위의 문은 문서의 마지막 하위 문서를 삽입합니다.

배열 업데이트 연산자를 사용하면 오류가 발생합니다.

죄송합니다. 재발송 된 경우입니다. 아무 데나 대답을 찾을 수 없습니다.

답변

4

배열 작업이 잘 작동 :

db.document.insert({'_id':99999}) 
db.document.update({'_id':99999},{$push:{'student':{'name':'Jack','marks':90}}}) 
db.document.update({'_id':99999},{$push:{'student':{'name':'Jill','marks':75}}}) 

지금

db.document.findOne({_id: 99999}) 

당신에게 줄 것이다

{ 
    "_id" : 99999, 
    "student" : [ 
    { 
     "name" : "Jack", 
     "marks" : 90 
    }, 
    { 
     "name" : "Jill", 
     "marks" : 75 
    } 
    ] 
} 

$push에 오류가 이미 문서에 해당 필드를 가지고 있다는 것을 의미하고 그것은 아니다 배열.

예를 들어, 다음 코드는 $push

db.document.insert({'_id':99998,'student':{'name':'Jack','marks':90}}) 
db.document.update({'_id':99998},{$push:{'student':{'name':'Jill','marks':75}}}) 

에 당신에게 오류를주고 다음 코드 것이다

db.document.insert({'_id':99997,'student':[{'name':'Jack','marks':90}]}) 
db.document.update({'_id':99997},{$push:{'student':{'name':'Jill','marks':75}}}) 
+0

굉장하지 않습니다. 고맙습니다. 빠른 응답을 감사하십시오. – user2629996