私はMongoDB mapReduceを使用してランキングアルゴリズムをコーディングしていますが、これはほとんど機能しますが、実装する最新のものはページングです。 map reduceは結果の制限をサポートしますが、どのようにしてオフセット(スキップ)を実装することができますか?私はマングースを使用していることを知って、結果の最新の見た_idに?ランキングアルゴリズム用のマングースmapReduceのページ付け
これは私が書いた手順です:
o = {};
o.map = function() {
//log10(likes+comments)/elapsed hours from the post creation
emit(Math.log(this.likes + this.comments + 1)/Math.LN10/Math.abs((now - this.createdAt)/6e7 + 1), this);
};
o.reduce = function(key, values) {
//sort the values, when they have the same score
values.sort(function(a, b) {
a.createdAt - b.createdAt;
});
//serialize the values, because mongoose does not support multiple returned values
return JSON.stringify(values);
};
o.scope = {now: new Date()};
o.limit = 15;
Posts.mapReduce(o, function(err, results) {
if (err) return console.log(err);
console.log(results);
});
をまた、それが進むべき道ではないのMapReduceは、あなたがこのような何かを実装する方法には、他の提案ですか?