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

MongoDBのfind()関数で_idフィールドを除外して表示する方法

MongoDBでは、find()メソッドの第2引数にプロジェクションを指定することで、検索結果から_idフィールドを除外して表示できます。構文は以下の通りです。

db.yourCollectionName.find({}, { _id: 0 });

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

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

> db.excludeIdDemo.insertOne({"CustomerName":"Larry"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7f62c1a844af18acdffb9")
}
> db.excludeIdDemo.insertOne({"CustomerName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7f6311a844af18acdffba")
}
> db.excludeIdDemo.insertOne({"CustomerName":"Mike"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7f6351a844af18acdffbb")
}
> db.excludeIdDemo.insertOne({"CustomerName":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd7f6381a844af18acdffbc")
}

通常のfind()で全ドキュメントを表示

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

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

実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5cd7f62c1a844af18acdffb9"), "CustomerName" : "Larry" }
{ "_id" : ObjectId("5cd7f6311a844af18acdffba"), "CustomerName" : "Chris" }
{ "_id" : ObjectId("5cd7f6351a844af18acdffbb"), "CustomerName" : "Mike" }
{ "_id" : ObjectId("5cd7f6381a844af18acdffbc"), "CustomerName" : "Bob" }

デフォルトでは、MongoDBは各ドキュメントに自動的に付与される_idフィールドも一緒に返します。

_idを除外したfind()クエリ

_idを表示結果から除外したい場合は、プロジェクションで{ _id: 0 }を指定します。

> db.excludeIdDemo.find({}, { _id: 0 });

このクエリを実行すると、以下のように_idフィールドが除かれた結果が出力されます。

{ "CustomerName" : "Larry" }
{ "CustomerName" : "Chris" }
{ "CustomerName" : "Mike" }
{ "CustomerName" : "Bob" }

ポイント解説

  • プロジェクションでは、表示したいフィールドに1(true)、除外したいフィールドに0(false)を指定します。
  • _idは特別なフィールドで、明示的に_id: 0を指定しない限り常に返されます。逆に言えば、他のフィールドと異なり、_idだけは「除外指定」が可能です。
  • 例えばdb.excludeIdDemo.find({}, { CustomerName: 1 })のように特定フィールドのみを取得する場合でも、_idを消したいなら{ CustomerName: 1, _id: 0 }と書く必要があります。

このように、プロジェクションを活用すれば、必要なデータだけを効率的に取得でき、アプリケーション側での不要なデータ処理やネットワーク帯域の節約にもつながります。

  1. ChromeでJavaScriptの関数定義を見つける方法|開発者ツールの検索機能を使いこなそう

    Google ChromeでWebサイトのソースコードを解析していると、「このJavaScript関数はどこで定義されているのだろう?」と悩むことがあります。特に大規模なプロジェクトや、複数の外部スクリプトが読み込まれているページでは、目的の関数定義を手作業で探すのは非常に手間がかかります。 Chrome DevToolsの検索機能を使えば一瞬で見つかる 実は、Chromeに標準搭載されているデベロッパーツール(Developer Tools)には、読み込まれたすべてのファイルを横断的に検索できる強力な機能があります。以下の手順に従えば、JavaScriptの関数定義も簡単に見つけられます。

  2. MongoDB 4でドキュメントをソートし、特定の1つのフィールドだけを表示する方法

    MongoDB 4でドキュメントを並べ替えるには、sort()メソッドを使用します。さらに、ソートした特定の1つのフィールドのみを表示したい場合は、プロジェクション(射影)を組み合わせて、表示したいフィールドに「1」を設定します。この記事では、実際のコード例を使って手順を順番に解説していきます。1. サンプルコレクションの作成まず、insertOne()メソッドを使って、テスト用のコレクション「demo611」にドキュメントを登録します。> db.demo611.insertOne({Name:Chris}); { acknowledged : true, insertedI