我有這樣的MongoDB組通過查詢從蒙戈控制檯的偉大工程:MongoDB的查詢:訂單和導出結果
db.accounts.group(
{ cond: { "created_at" : { $gte: ISODate("2012-08-12T00:00:00Z") }}
, key: {member_id: true}
, initial: {count: 0, failed: 0, succeeded: 0}
, reduce: function(doc, out) {
out.count++;
if (!doc.success)
out.failed++
else
out.succeeded++
}
});
我的三個問題:
- 是否有一個更簡單的方法生成此時間戳:ISODate(「2012-08-12T00:00:00Z」)?我可以使用日期函數來生成此時間戳嗎?如果是這樣,怎麼樣?
- 如何按照分組字段對「返回結果」進行排序(asc/desc):「失敗」還是「成功」?
- 最後,我將如何將輸出導出到平面文件?
更新
對於#3,我基本上是在尋找這樣的:
mongo my_db --eval 'some_var=X;' --quiet my_script.js >> output.txt
哪裏MY_DB是我使用的數據庫,some_var是我傳遞給一個變量my_script.js包含我的分組查詢。 output.txt顯然是輸出寫入的地方。
注意:我正在通過客戶端執行這些操作。所以我正在尋找如何從命令行執行#2和#3,如果可能的話。當然,我可以編寫一個腳本來做我想做的所有事情,但我期待看看是否有方法直接從CLI執行此操作。 – doremi 2012-08-15 20:37:24
@doremi對於#3我不相信JS引擎(spidermonkey)有一個寫入文件模塊,最近我發現是https://developer.mozilla.org/en-US/docs/SpiderMonkey/File_object,它是非標準的,所以它可能不在那裏。 – Sammaye 2012-08-15 20:41:01
@doremi#2如何尋找排序?我可以使用JS來構建一個可以使用的快速排序功能,但這取決於你想如何排序。 – Sammaye 2012-08-15 20:42:27