次のようなドキュメントがあります。
{
"_id" : ObjectId( "5191651568f1f6000282b81f" ),
"updated_at" : "2013-05-16T09:46:16.199660",
"activities" : [
{
"worker_name" : "image",
"completed_at" : "2013-05-13T21:34:59.293711"
},
{
"worker_name" : "image",
"completed_at" : "2013-05-16T07:33:22.550405"
},
{
"worker_name" : "image",
"completed_at" : "2013-05-16T07:41:47.845966"
}
]
}
updated_at 時刻が最後のactivities.completed_at 時刻よりも大きいドキュメントのみを検索したいと思います(配列は時間順です)
私は現在これを持っていますが、どのアクティビティにも一致します[].completed_at
{
"activities.completed_at" : {"$gte" : "updated_at"}
}
ありがとう!
アップデート
さて、私はさまざまな労働者を抱えており、それぞれに独自の「completed_at」があります。
次のようにアクティビティを反転する必要があります。
activities: { image :
last : {
completed_at: t3,
},
items: [
{completed_at: t0},
{completed_at: t1},
{completed_at: t2},
{completed_at: t3},
]
}
次のクエリを使用します。
{
"activities.image.last.completed_at" : {"$gte" : "updated_at"}
}