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

MongoDBで単一のプロパティ「_id」のみを返す方法

MongoDBでは、find()メソッドの第2引数にプロジェクション(射影)を指定することで、ドキュメントから特定のフィールドだけを取得できます。ここでは、コレクションから「_id」プロパティのみを返す方法を解説します。

_idのみを返す基本構文

以下が、MongoDBで「_id」プロパティのみを返すための構文です。

db.yourCollectionName.find({}, {"_id": 1}).pretty();

第1引数の {} は検索条件を表し(空なので全件取得)、第2引数の {"_id": 1} がプロジェクションです。「1」を指定することで「_id」フィールドを結果に含めることを意味します。

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

まず、ドキュメントを含むコレクションを作成しましょう。

> db.singlePropertyIdDemo.insertOne({"_id":101,"UserName":"Larry","UserAge":21});
{ "acknowledged" : true, "insertedId" : 101 }
> db.singlePropertyIdDemo.insertOne({"_id":102,"UserName":"Mike","UserAge":26});
{ "acknowledged" : true, "insertedId" : 102 }
> db.singlePropertyIdDemo.insertOne({"_id":103,"UserName":"Chris","UserAge":24});
{ "acknowledged" : true, "insertedId" : 103 }
> db.singlePropertyIdDemo.insertOne({"_id":104,"UserName":"Robert","UserAge":23});
{ "acknowledged" : true, "insertedId" : 104 }
> db.singlePropertyIdDemo.insertOne({"_id":105,"UserName":"John","UserAge":27});
{ "acknowledged" : true, "insertedId" : 105 }

find()メソッドですべてのドキュメントを表示する

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

> db.singlePropertyIdDemo.find().pretty();

このクエリを実行すると、以下のような出力が得られます。

{ "_id" : 101, "UserName" : "Larry", "UserAge" : 21 }
{ "_id" : 102, "UserName" : "Mike", "UserAge" : 26 }
{ "_id" : 103, "UserName" : "Chris", "UserAge" : 24 }
{ "_id" : 104, "UserName" : "Robert", "UserAge" : 23 }
{ "_id" : 105, "UserName" : "John", "UserAge" : 27 }

_idプロパティのみを返すクエリ

それでは、「_id」プロパティのみを返すクエリを実行してみましょう。

> db.singlePropertyIdDemo.find({}, {"_id": 1}).pretty();

実行結果は以下のとおりです。「UserName」や「UserAge」などの他のフィールドは除外され、「_id」だけが出力されていることが確認できます。

{ "_id" : 101 }
{ "_id" : 102 }
{ "_id" : 103 }
{ "_id" : 104 }
{ "_id" : 105 }

ポイント解説

MongoDBでは特別な設定をしない限り、「_id」フィールドはデフォルトで常に結果に含まれます。そのため、プロジェクションで明示的に指定しなくても「_id」は表示されます。逆に「_id」以外のフィールドのみを取得したい場合は、{"_id": 0}のように0を指定して除外する必要があります。この挙動を理解しておくと、必要なデータだけを効率よく取得でき、アプリケーションのパフォーマンス向上にもつながります。

  1. MongoDBで単一フィールドのみを取得する方法【find()のプロジェクション解説】

    MongoDBで単一フィールドを選択する基本構文MongoDBでは、find()メソッドの第2引数に「プロジェクション(射影)」を指定することで、コレクションから特定のフィールドだけを取得できます。単一のフィールドを選択する場合の基本構文は以下のとおりです。db.yourCollectionName.find({yourFieldName:yourValue},{yourSingleFieldName:1,_id:0});この構文において、yourSingleFieldName:1 は「指定したフィールドを取得する」ことを意味し、_id:0 は「_idフィールドを結果から除外する」ことを意味し

  2. 1つのコマンドでMongoDBを安全に停止する方法|shutdownServerの使い方を解説

    単一コマンドでMongoDBを停止する方法 MongoDBサーバーを1つのコマンドで停止したい場合は、mongoシェルの--evalオプションを使い、adminデータベースに対してshutdownServer()を実行するのが最も簡単な方法です。 使用するコマンドの基本構文は以下の通りです。 mongo --eval db.getSiblingDB(admin).shutdownServer() getSiblingDB(admin)でadminデータベースに切り替えてからshutdownServer()を呼び出すことで、接続中のMongoDBサーバーをシャットダウンできます。 実行手順 そ