來源:https://groups.google.com/forum/#!topic/mongodb-user/Rjv6lyUCe1s 。
Collction last3有兩個字段:variable和timestamp,需要先按variable分組,選出每組文檔中timestamp最晚的3個,再從這些文檔中找到timestamp最早的1個。
last3的部分數據如下:
集算器代碼:
A1:連接MongoDB,連接字格式爲mongo://ip:port/db?arg=value&…
A2:使用find函數從MongoDB中取數並排序,形成遊標。collectoin是last3,過濾條件是空,取出_id之外的所有字段,並按variable排序。集算器的find函數和mongdb的find+sort+limit函數類似,過濾條件的寫法遵循mongodb規範。
A3:循環從遊標讀數,每次取variable字段相同的一組文檔。A3的作用範圍是縮進的B3到B4,其間可以用A3來引用循環變量。A3是內存數據,某次取數的結果如下:
B3:選出本組文檔中timestamp最晚(大)的3個。
B4:將B3不斷地追加到B2中。B2如下:
A5:選出B2中timstamp最早(小)的那個文檔,即:
A6:關閉mongodb連接。