MongoDB で最後の N レコードを取得するにはどうすればいいですか? 質問する

MongoDB で最後の N レコードを取得するにはどうすればいいですか? 質問する

これについて文書化されているところはどこにも見つかりません。デフォルトでは、find() 操作は最初からレコードを取得します。mongodb で最後の N レコードを取得するにはどうすればよいですか?

編集: また、返される結果は、新しい順ではなく、古い順から新しい順に並べたいです。

ベストアンサー1

質問の意味を理解しているのであれば、昇順で並べ替える必要があります。

「x」と呼ばれる ID または日付フィールドがあると仮定すると、次のようになります...

。選別()


db.foo.find().sort({x:1});

1昇順 (古いものから新しいものへ) に並べ替え、-1は降順 (新しいものから古いものへ) に並べ替えます。

自動作成された_idフィールドを使用する場合、日付が埋め込まれます...そのため、それを使用して並べ替えることができます...

db.foo.find().sort({_id:1});

これにより、すべてのドキュメントが古いものから新しいものの順に並べ替えられて返されます。

自然の秩序


また、自然の秩序上記の通り ...

db.foo.find().sort({$natural:1});

ここでも、希望する順序に応じて1または-1 を使用します。

.limit() を使用する


最後に、このような広範囲にわたるクエリを実行するときは、制限を追加して、次のいずれかを実行することをお勧めします...

db.foo.find().sort({_id:1}).limit(50);

または

db.foo.find().sort({$natural:1}).limit(50);

おすすめ記事