毎分保存される新しいドキュメントの数に関する統計を作成したいと考えています。
標準の ObjectID を持つ _id フィールドには、ドキュメント作成のタイムスタンプが既に含まれているため、何らかの形で使用できるはずです。
Stackoverflow で、作成データ専用のフィールドがある場合に実行する次のマップ削減コードを見つけました
map = function() {
var created_at_minute = new Date(this.created_at.getFullYear(),
this.created_at.getMonth(),
this.created_at.getDate(),
this.created_at.getHours(),
this.created_at.getMinutes());
emit(created_at_minute, {count: 1});
}
reduce = function(key, values) {
var total = 0;
for(var i = 0; i < values.length; i++) { total += values[i].count; }
return {count: total};
}
Mongo DB ドキュメント ( http://docs.mongodb.org/manual/reference/object-id/ ) によると、ObjectId("507f191e810c19729de860ea").getTimestamp() を呼び出すことで、_id からタイムスタンプを取得できるはずです。
今のところ、マップ関数内でこの getTimestamp() を使用できるかどうかはわかりません。
誰かがそれを行う方法を知っていますか、それともより良い方法がありますか?
Pythonまたはphpで実装できるようにする必要があります