MongoDBで主キー(_id)を検索結果から除外する方法
MongoDBでは、挿入されたドキュメントに自動的に主キーとなる _id フィールドが付与されます。この _id を検索結果から除外したい場合は、find() メソッドの第2引数(プロジェクション)で _id の値を 0 に設定します。除外したい他のフィールドについても、同様に 0 を指定します。
ここでは、実際にコレクションを作成し、_id を除外してドキュメントを取得する手順を順番に解説します。
サンプルコレクションの作成
まず、insertOne() を使ってドキュメントを挿入し、コレクションを作成します。
> db.demo471.insertOne({"ClientId":101,"ClientName":"Chris"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e805711b0f3fa88e2279077")
}
> db.demo471.insertOne({"ClientId":102,"ClientName":"Bob"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e80571db0f3fa88e2279078")
}
> db.demo471.insertOne({"ClientId":103,"ClientName":"David"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e805724b0f3fa88e2279079")
}
すべてのドキュメントを表示する
find() メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。
> db.demo471.find();
実行すると、次のような出力が得られます。各ドキュメントに _id フィールドが含まれていることを確認してください。
{ "_id" : ObjectId("5e805711b0f3fa88e2279077"), "ClientId" : 101, "ClientName" : "Chris" }
{ "_id" : ObjectId("5e80571db0f3fa88e2279078"), "ClientId" : 102, "ClientName" : "Bob" }
{ "_id" : ObjectId("5e805724b0f3fa88e2279079"), "ClientId" : 103, "ClientName" : "David" }
_id(主キー)を除外するクエリ
MongoDBで主キー(_id)を結果から除外するには、以下のようにプロジェクションで _id:0 を指定します。
> db.demo471.find({},{_id:0,ClientId:0});;
実行すると、次のような出力が得られます。_id と ClientId が除外され、ClientName のみが表示されていることがわかります。
{ "ClientName" : "Chris" }
{ "ClientName" : "Bob" }
{ "ClientName" : "David" }
ポイントまとめ
find()の第2引数でプロジェクション(表示するフィールドの指定)ができる_id:0を指定すると、主キーの_idを検索結果から除外できる- 他のフィールドも同じように
0を指定することで除外可能 - なお、これはデータベースから
_idを物理的に削除する操作ではなく、あくまで取得結果から非表示にするだけである点に注意しましょう
-
Accessのテーブルで主キーを追加・削除する方法をわかりやすく解説
Microsoft Accessでテーブルを作成すると、Accessが自動的にデータベーステーブルへ主キーを作成してくれます。しかし、ユーザーが任意のフィールドを主キーとして指定することも可能です。 Accessにおける主キー(Primary Key)とは、テーブル全体を通じて一意の値を持つフィールド、またはフィールドの組み合わせのことです。主キーには以下のような特徴があります。 データベース内の各行を一意に識別できる 常に値が格納されており、空(Null)にならない 一度設定された値が変更されることはない Accessのテーブルで主キーを追加・削除する手順 Accessのデータベーステー
-
Outlookのプライマリアカウントを変更・削除する3つの方法【エラー解決ガイド】
社内のExchangeサーバーから新しいOffice 365へ移行する際、現在のプロファイルを維持したまま作業を進めようとすると、「プライマリアカウントは削除できません」というエラーメッセージが表示されることがあります。本記事では、この問題の原因と、状況に応じた3つの解決方法をステップバイステップで解説します。 「プライマリアカウントは削除できません」エラーの原因 プロファイルを保持したまま移行作業を行おうとすると、以下のようなメッセージが表示されます。 「プライマリアカウントは、プロファイル内の唯一のアカウントである場合を除き、削除できません。プライマリアカウントを削除する前に、他のす