MongoDBでキー名を指定して特定の値を取得する方法
MongoDBでキー名を指定して値を取得する方法
MongoDBのコレクションから、キー(フィールド)名を指定して値を取得したい場合は、find()メソッドの第2引数にプロジェクションを指定します。基本構文は以下の通りです。
db.yourCollectionName.find({},{"yourFieldName":1}).pretty();
第1引数の {} は検索条件を表し、空オブジェクトを渡すとすべてのドキュメントが対象になります。第2引数の {"yourFieldName":1} が取得したいフィールドの指定部分で、値を 1 にするとそのフィールドが表示対象となり、0 にすると非表示になります。
サンプルコレクションの作成
実際に動作を確認するため、ドキュメントを含むコレクションを作成しましょう。以下のクエリを実行します。
> db.retrieveValueFromAKeyDemo.insertOne({"CustomerName":"Larry","CustomerAge":21,"CustomerCountryName":"US"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9163b5a56efcc0f9e69048")
}
> db.retrieveValueFromAKeyDemo.insertOne({"CustomerName":"Chris","CustomerAge":24,"CustomerCountryName":"AUS"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9163c4a56efcc0f9e69049")
}
> db.retrieveValueFromAKeyDemo.insertOne({"CustomerName":"Mike","CustomerAge":26,"CustomerCountryName":"UK"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c9163d3a56efcc0f9e6904a")
}
登録済みドキュメントの確認
find()メソッドを使えば、コレクション内のすべてのドキュメントを表示できます。以下のクエリを実行してください。
> db.retrieveValueFromAKeyDemo.find().pretty();
実行結果は次の通りです。
{
"_id" : ObjectId("5c9163b5a56efcc0f9e69048"),
"CustomerName" : "Larry",
"CustomerAge" : 21,
"CustomerCountryName" : "US"
}
{
"_id" : ObjectId("5c9163c4a56efcc0f9e69049"),
"CustomerName" : "Chris",
"CustomerAge" : 24,
"CustomerCountryName" : "AUS"
}
{
"_id" : ObjectId("5c9163d3a56efcc0f9e6904a"),
"CustomerName" : "Mike",
"CustomerAge" : 26,
"CustomerCountryName" : "UK"
}
キー名「CustomerCountryName」を指定して値を取得する
それでは、キー名として「CustomerCountryName」を指定して値を取得してみましょう。実行するクエリは以下の通りです。
> db.retrieveValueFromAKeyDemo.find({}, {"CustomerCountryName":1}).pretty();
出力結果はこちらです。
{
"_id" : ObjectId("5c9163b5a56efcc0f9e69048"),
"CustomerCountryName" : "US"
}
{
"_id" : ObjectId("5c9163c4a56efcc0f9e69049"),
"CustomerCountryName" : "AUS"
}
{
"_id" : ObjectId("5c9163d3a56efcc0f9e6904a"),
"CustomerCountryName" : "UK"
}
このように、プロジェクションを活用することで、必要なフィールドだけを効率的に取り出せます。なお、_id フィールドを表示したくない場合は、{"_id": 0, "CustomerCountryName": 1} のように明示的に _id を除外することもできます。大量データを扱う際には、取得フィールドを絞ることで通信量やメモリ使用量を抑えられるため、パフォーマンス向上にもつながります。
-
MongoDBシェルで特定の値を持つドキュメントを取得する方法をわかりやすく解説
MongoDBシェルを使って特定の値を持つアイテムを取得する方法MongoDBで特定の値を持つドキュメントを取得したい場合、find()メソッドを使用するのが基本です。この記事では、サンプルコレクションを作成し、実際にfind()メソッドを使って条件に合うデータを抽出する手順を詳しく解説します。1. サンプルコレクションの作成まずはinsertOne()メソッドを使って、テスト用のコレクション「demo563」に複数のドキュメントを挿入します。> db.demo563.insertOne({Name:Chris,Age:21,isMarried:true}){ acknowled
-
PHPでJSONから値を正しく取得する方法をわかりやすく解説
JSONから値を取得する基本:json_decode()の使い方JSON形式のデータから特定の値を取り出すには、PHPのjson_decode()関数を使用します。この関数を使うと、JSON文字列をPHPの配列やオブジェクトに変換でき、その後は通常の配列アクセスと同じ要領で目的の値を取得できます。例として、以下のようなJSONデータを想定します。$detailsJsonObject = {details:[{name:John,subjectDetails:{subjectId:101,subjectName:PHP,marks:58,teacherName:Bob}}]};このデータから「教