我有一個mongo存儲「task」,它有一個數組「answers」,該數組帶有一個散列,其元素是時間戳。所以:Mongo Newbie:最近的子散列在一定時間範圍內具有一個值的條目數
task ->
project_id,
answers ->
[
{
timestamp: <time>,
question_1: <answer_1>,
question_2: <answer_2>
},
{
timestamp: <time>,
question_1: <answer_1>,
question_2: <answer_2>
},
]
我希望做的是獲得具有給定項目ID,並且其最新的應答時間戳字段在過去的24小時之內的所有任務列表。項目ID的東西顯然是非常簡單的,我可以確定一個時間戳是否落在給定的時間段之間,使用$ gte和$ lt ...但是我不知道如何將其範圍限制到最新的時間戳。
我沒有爲此使用ORM - 所以只是簡單的mongo查詢語法首選。
任何意見讚賞。
你將需要做一個map-reduce命令來恢復它;那樣你覺得可以嗎?我可以幫助提供關於它可能看起來像什麼的細節。 – Petrogad
謝謝Petrogad。從快速查看map-reduce,它似乎是必要的選項。如果你可以嘗試打擊一些細節,將不勝感激。 – PlankTon
只要你在Mongo v2.1或更高版本,[聚合框架](http://docs.mongodb.org/manual/applications/aggregation/)就可以很好地處理這個問題。 – JohnnyHK