MongoDBコレクションから先頭のドキュメントを取得する方法
MongoDBでコレクションの先頭(最上位)にあるドキュメントを取得するには、find()メソッドとlimit()メソッドを組み合わせて使用します。特に1件だけ取得したい場合は、limit(1)を指定するのが簡単で効果的です。
まずは実際に動作を確認するため、サンプル用のコレクションにドキュメントを挿入してみましょう。
> db.demo681.insertOne({_id:101,Name:"Chris"});
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo681.insertOne({_id:102,Name:"Bob"});
{ "acknowledged" : true, "insertedId" : 102 }
> db.demo681.insertOne({_id:103,Name:"David"});
{ "acknowledged" : true, "insertedId" : 103 }
> db.demo681.insertOne({_id:104,Name:"Bob"});
{ "acknowledged" : true, "insertedId" : 104 }
> db.demo681.insertOne({_id:105,Name:"Sam"});
{ "acknowledged" : true, "insertedId" : 105 }コレクション内の全ドキュメントを表示する
find()メソッドを使用すると、コレクション内のすべてのドキュメントを確認できます。
> db.demo681.find();
このクエリを実行すると、次のような出力が得られます。
{ "_id" : 101, "Name" : "Chris" }
{ "_id" : 102, "Name" : "Bob" }
{ "_id" : 103, "Name" : "David" }
{ "_id" : 104, "Name" : "Bob" }
{ "_id" : 105, "Name" : "Sam" }先頭のドキュメントのみを取得するクエリ
先頭の要素だけを取得したい場合は、find()にlimit(1)を付けて実行します。
> db.demo681.find().limit(1);
実行結果は以下のとおりです。
{ "_id" : 101, "Name" : "Chris" }補足:並び順を制御したい場合
limit(1)だけでは、デフォルトの格納順(自然順序)で最初のドキュメントが返されます。特定の条件で「先頭」を決めたい場合は、sort()と組み合わせると便利です。例えば、_idの降順で最新のドキュメントを1件取得するには次のように記述します。
> db.demo681.find().sort({_id:-1}).limit(1);このように、find()・sort()・limit()を組み合わせることで、目的のドキュメントを柔軟に取得できます。
-
MongoDBコレクションから最大値のドキュメントを取得する方法
MongoDBコレクションから最大値のドキュメントを取得する方法 MongoDBのコレクションから特定フィールドが最大のドキュメントを取得したい場合は、sort()メソッドで降順に並べ替え、limit(1)を組み合わせるのが基本かつ効率的な方法です。 この記事では、実際にコレクションを作成しながら、最大値を取得するクエリの書き方を具体的な実行例とともに解説します。 1. サンプルコレクションの作成 まず、テスト用のコレクションにドキュメントを挿入してみましょう。 > db.demo669.insertOne({Marks:76}); { acknowledged : true,
-
MongoDBコレクションから一意の値(重複なし)を取得する方法【distinct()の使い方】
MongoDBでコレクション内の重複データを除外し、一意の値だけを取得したい場合は、distinct()メソッドを使用します。distinct()は、指定したフィールドに含まれる重複しない値を1つのコレクション全体から検索し、その結果を配列として返します。サンプルコレクションの作成まず、insertOne()を使ってドキュメントを挿入し、コレクションを作成します。> db.demo704.insertOne({"LanguageCode":"hi"}); { "acknowledged" : true, &quo