MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBのコレクションからデータを取得する方法(findOne()の使い方)

MongoDBのコレクションからデータを取得するには?

MongoDBでコレクションから単一のドキュメントを取得したい場合は、findOne()メソッドを使用します。本記事では、サンプルコレクションを作成し、その中から特定の条件に一致するデータを取り出すまでの手順を順番に解説します。

1. サンプルコレクションの作成

まず、insertOne()メソッドを使って、学生情報のドキュメントを複数件持つコレクション「demo463」を作成します。

> db.demo463.insertOne({"StudentName":"Chris Brown","StudentAge":21,"StudentCountryName":"US"});{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e7f7ec8cb66ccba22cc9dcf")
}
> db.demo463.insertOne({"StudentName":"David Miller","StudentAge":23,"StudentCountryName":"UK"});{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e7f7ed5cb66ccba22cc9dd0")
}
> db.demo463.insertOne({"StudentName":"John Doe","StudentAge":22,"StudentCountryName":"AUS"});{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e7f7ee1cb66ccba22cc9dd1")
}
> db.demo463.insertOne({"StudentName":"John Smith","StudentAge":24,"StudentCountryName":"US"});{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e7f7eefcb66ccba22cc9dd2")
}

2. コレクション内の全ドキュメントを確認する

find()メソッドを使用すると、コレクション内のすべてのドキュメントを表示できます。

> db.demo463.find();

上記のクエリを実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5e7f7ec8cb66ccba22cc9dcf"), "StudentName" : "Chris Brown",
"StudentAge" : 21, "StudentCountryName" : "US" }
{ "_id" : ObjectId("5e7f7ed5cb66ccba22cc9dd0"), "StudentName" : "David Miller",
"StudentAge" : 23, "StudentCountryName" : "UK" }
{ "_id" : ObjectId("5e7f7ee1cb66ccba22cc9dd1"), "StudentName" : "John Doe", "StudentAge" :
22, "StudentCountryName" : "AUS" }
{ "_id" : ObjectId("5e7f7eefcb66ccba22cc9dd2"), "StudentName" : "John Smith", "StudentAge"
: 24, "StudentCountryName" : "US" }

3. findOne()で特定のデータを取得する

続いて、MongoDBのコレクションからデータを取得するためのクエリがこちらです。findOne()に検索条件を渡して実行します。

> db.demo463.findOne({"StudentName":"John Doe"});

実行すると、条件に一致したドキュメントが以下のように返されます。

{
    "_id" : ObjectId("5e7f7ee1cb66ccba22cc9dd1"),
    "StudentName" : "John Doe",
    "StudentAge" : 22,
    "StudentCountryName" : "AUS"
}

find()とfindOne()の違い

find()は条件に一致するすべてのドキュメントを含むカーソルを返すのに対し、findOne()は一致した最初の1件だけをドキュメントとして直接返します。単一レコードを素早く取得したい場合や、存在確認を行いたい場合にはfindOne()が便利です。


  1. MongoDBコレクションから重複を削除する方法|unique制約の使い方を解説

    MongoDBコレクションから重複を削除する方法MongoDBのコレクションに重複データが登録されるのを防ぎたい場合は、ユニーク制約(unique: true)を設定するのが最も基本的かつ確実な方法です。対象フィールドにユニークインデックスを作成しておくことで、同じ値を持つドキュメントの挿入が自動的に拒否され、コレクション内に重複が存在しない状態を維持できます。基本構文以下のように、コレクション名とフィールド名を指定してユニークインデックスを作成します。「dropDups: true」を付けることで、インデックス作成時点で既に存在していた重複ドキュメントも削除され、各グループの最初の1件のみが

  2. Javaを使ってMongoDBコレクションからすべてのドキュメントを取得する方法

    MongoDBでは、find()メソッドを使用することで、既存のコレクションからドキュメントを取得できます。この記事では、MongoDBシェルでの基本操作と、Javaプログラムからすべてのドキュメントを取得する手順について詳しく解説します。MongoDBシェルでの構文db.coll.find()各要素の意味は以下のとおりです。db:対象となるデータベースcoll:ドキュメントを取得したいコレクションの名前シェルでの実行例ここでは、MongoDBデータベース内に「students」というコレクションがあり、次のドキュメントが登録されているものとします。{name:"Ram",