2017-12-04 5 views
1

ほとんどの同様の質問を読み込もうとしましたが(多くはありますが)理解できる解決策は見つかりませんでした。mongooseを使用して深くネストされたサブ文書を更新します。

RoomIDと基板IDの両方を照会した後、新しいデバイスを追加する方法

[ 
    {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); 

デシベルで部屋のオブジェクト:

room.save(); 

はそれが

+0

ドキュメントは1つだけです。だから私はboard.pushをどのように達成するのですか?私はfindoneandupdateとelemmatchを試しましたが、それでも部屋のオブジェクトを返します。 – Harshit

+0

私は答えを編集しました。それがあなたに役立つかどうか確認してください –

+0

ありがとうございました。しかし、私はまだ非同期プログラミングに慣れていません。ボードを直接使用すると、おそらくNodeJSのIOのノンブロッキングが原因で、未定義のオブジェクトが返されます。コールバックを使用しようとしましたが、オブジェクトではなくJSONのドキュメントが返されます。私がさらに勉強するために参照することができる文書を助けたり提案したりできますか? – Harshit

関連する問題