[解決済み] mongodbの最後のN個のレコードを取得する方法は?
2022-03-16 02:11:02
質問
どこにもこのようなことが書かれていないのですが。デフォルトでは、find()オペレーションは先頭からレコードを取得します。mongodbの最後のN個のレコードを取得するにはどうしたらよいですか?
編集:また、私は、返された結果を逆ではなく、より新しいものから最も新しいものへと並べたい。
解決方法は?
昇順でソートする必要があるのですね。
x"という名前のIDまたは日付フィールドがあると仮定して、次のようにします。
.sort()
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);
関連
-
MongoDBデータベースのインストール手順
-
MongoDBを循環型キュー方式で詳しく解説
-
[解決済み】MongoDBシェルですべてのコレクションを一覧表示するには?
-
[解決済み] 配列フィールドが空でない MongoDB レコードを検索する
-
[解決済み] MongoDBに "like "を使ってクエリを実行する方法
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] コマンドラインからMongoDBデータベースを削除する方法を教えてください。
-
[解決済み] MongoDB コレクションのすべてのドキュメントに新しいフィールドを追加する
-
[解決済み】MongoDBがv4以前にACID準拠でなかったことの本当の意味は?
-
[解決済み] コマンド1つでmongo DBを停止する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン