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を持つオブジェクトを「一時停止」から戻すにはどうすればよいですか?
ご意見やご感想をいただければ幸いです。
、ありがとう。これを使用してみてください! – Jonathan