2016-07-04 8 views
1

新しいMEAN.js/Mongoの開発者がここにいるので、私はこの問題を理解することができます。複数の配列にネストされた_idによってオブジェクトにアクセスする方法

ここでは、作業しているデータのうち、ドキュメントの先頭から関連する部分を示します。私はpauses配列内のオブジェクトの_idフィールドにドリルダウンしようとしているので、特定の値に一致させて(特定のインスタンスにアクセスする)、他の属性の更新を実行できます。

{ "$match": { "_id": req.user._id } }, 
    { "$unwind": "$poms" }, 
    { "$project": { 
     "_id": 0, 
     "pom": "$poms" 
    } }, 
    { "$match": { "pom._id": req.params.pomId } }, 
    { "$unwind": "$pom.pauses" }, 
    { "$project": { 
     "pause": "$pom.pauses" 
    } } 

残念ながら、それは空のブラケットを与えている:

{ 
     "_id" : ObjectId("575c902078c8db620d50699e"), 
     "username" : "superadmin", 
     "poms" : [ 
      { 
       "_id" : ObjectId("577a6c6c1d4ddcf805e6a4a0"), 
       "pauses" : [ 
        { 
         "_id" : ObjectId("577a6c6e1d4ddcf805e6a4a1"), 
         "momentResumed" : null, 
         "momentPaused" : ISODate("2016-07-04T14:02:22.643Z") 
        }, 
        { 
         "_id" : ObjectId("577a6cae1d4ddcf805e6a4a2"), 
         "momentResumed" : null, 
         "momentPaused" : ISODate("2016-07-04T14:03:26.364Z") 
        } 
       ], 
       "momentCompleted" : null, 
       "momentStarted" : ISODate("2016-07-04T14:02:20.383Z") 
      }, 
      { 
       "_id" : ObjectId("577a6d63bc35cf1006c05f64"), 
       "pauses" : [ 
        { 
         "_id" : ObjectId("577a6d64bc35cf1006c05f65"), 
         "momentResumed" : null, 
         "momentPaused" : ISODate("2016-07-04T14:06:28.685Z") 
        }, 
        { 
         "_id" : ObjectId("577a6d67bc35cf1006c05f66"), 
         "momentResumed" : null, 
         "momentPaused" : ISODate("2016-07-04T14:06:31.869Z") 
        }, 
        { 
         "_id" : ObjectId("577a6d7ebc35cf1006c05f67"), 
         "momentResumed" : null, 
         "momentPaused" : ISODate("2016-07-04T14:06:54.594Z") 
        } 
       ], 
       "momentCompleted" : ISODate("2016-07-04T14:07:00.455Z"), 
       "momentStarted" : ISODate("2016-07-04T14:06:27.145Z") 
      } 
     ] 
    } 

ここで私が作ってみた集計クエリです。私は本当に困っている、私は考えてきたすべてを試してみた。内部の特定の_idを持つオブジェクトを「一時停止」から戻すにはどうすればよいですか?

ご意見やご感想をいただければ幸いです。

答えて

関連する問題