我來自SQL世界,還在學習MongoDB的查詢,而我面對這個問題......MongoDB的查詢上嵌套數組中最後一個文檔的領域
設置:
我有一個它有會議的數組學生收集
student: {
meetings: [
{time: x},
{time: y},
{time: z}
]
}
會議陣列具有動態的大小,它的元素由ASC時間排序,所以數組中的第一次會議將有最早的時候。
我能夠查詢得到所有學生的第一次會議通過一定時間後開始:
db.students.find({ "meetings.0.time": {$gt: ISODate()} })
問:
現在我還需要查詢獲得所有學生的最後一次會議開始前一定的時間。但是,以下內容不起作用:
db.students.find({ "meetings.-1.time": {$lt: ISODate()} })
你們會如何解決這個問題?
無法從手機正確回答。購買你將能夠使用聚合框架來做到這一點。看看mongodb文檔。 – sambomartin 2013-03-14 23:25:13
如果最後一次少於日期,那麼數組中的所有時間將小於該日期。也許meet.forEach.time會工作? – 2013-03-14 23:37:14
「LAST」按陣列排列或「LAST」按「最新」排序? – 2013-03-14 23:50:55