2017-12-04 8 views
1

비슷한 질문을 대부분 읽으려고 시도했지만 이해할 수있는 해결책을 찾지 못했습니다.몽구스를 사용하여 깊게 중첩 된 하위 문서를 업데이트하십시오.

RoomID 및 BoardID 모두 쿼리 후 새 장치를 추가하는 방법

[ 
    {RoomID:Room1, 
    Boards:[ 
     {BoardID:Board1, 
     Devices:[ 
     {DeviceID:Dev1} 
     ....] 
       } 
       ....] 
        } 
        .....] 

below- 언급 한 바와 같이 문서의 구조?

+0

을하는 데 도움이 https://stackoverflow.com/questions/23 577123/updated-a-nested-array-with-mongodb – Shubham

답변

0

findOne() 메소드로 문서를 가져올 수 있습니다. 당신이 방 개체가있을 때 ,이 호출 보드를 finde 수 있습니다

board.Devices.push(Device); 

그리고 마지막으로 당신이를 저장해야합니다 : 당신이 보드를 일단

var board = room.Boards.find(board => board.BoardId === BoardID); 

당신은 그것을 장치를 추가 할 수 있습니다 DB에서 방 개체 :

room.save(); 

희망이

+0

문서가 하나뿐입니다. 보드를 어떻게 완성합니까? 나는 findoneandupdate와 elemmatch를 시도했지만 여전히 실체를 반환합니다. – Harshit

+0

답변을 편집했습니다. 도움이되는지 확인하십시오 –

+0

도와 주셔서 감사합니다. 하지만 아직 비동기 프로그래밍에 익숙하지 않습니다. 보드를 직접 사용하면 NodeJS의 논 블로킹 IO로 인해 정의되지 않은 객체가 반환됩니다. 나는 콜백을 사용하려고했지만 JSON 문서가 아니라 객체를 반환한다. 좀 더 공부하라고 추천 할 수있는 문서를 제안하거나 제안 해 주시겠습니까? – Harshit