0

次のようなドキュメントがあります。

{ 
    "_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"}
}
4

1 に答える 1