Mongoコンソールからうまく機能するこのMongoDB group-byクエリがあります:
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++
}
});
私の3つの質問:
- このタイムスタンプを生成する簡単な方法はありますか: ISODate("2012-08-12T00:00:00Z")? 日付関数を使用してこのタイムスタンプを生成できますか? もしそうなら、どのように?
- 返された結果をグループ化されたフィールド (「失敗」または「成功」) でソート (昇順/降順) するにはどうすればよいですか?
- 最後に、出力をフラット ファイルにエクスポートするにはどうすればよいでしょうか。
アップデート
#3については、基本的にこれを探していました:
mongo my_db --eval 'some_var=X;' --quiet my_script.js >> output.txt
my_db は使用しているデータベースです。some_var は、group-by クエリを含む my_script.js に渡す変数です。output.txt は明らかに出力が書き込まれる場所です。