0

送信されたメッセージのリストのデータ ストアとして mongo を使用しています。各メッセージには があり、id(可能な限り効率的に)できるようにしたいことは、提供されたものが逆nになる前に開始する結果の数を返すことです。id

たとえば、次のような関数呼び出しを使用します。

getHistory(start, count)

私は提供できます:

getHistory("a123", 10)

これは、'id="a123"` を持つレコードの前に 10 レコードを返します。トリックはIDがGUIDであるため、それに基づいて逆方向にインクリメントすることはできません。

これは私がこれまでに持っているものであり、正しい位置から始まっていません:

var cursor = collection.find({id: id}).sort({timestamp: -1}).limit(10)
4

1 に答える 1

1

テストされていませんが、次の行に沿った何かが機能するはずです(マングースで):

collection.find({_id: {$lt: start}}).sort({_id: -1}).limit(10);

これにより、開始 ID より前のすべての要素が検索され、順序が逆になり、最初の 10 が取得されます。つまり、開始前の最後の 10 が取得されます。

于 2013-10-19T19:41:55.703 に答える