MongoDBで特定のフィールドを返す
MongoDBでは、find()メソッドと射影演算子を使用して指定されたフィールドを返せます。
projection演算子$projectを使用して返り値のフィールドを指定すると共に、find()メソッドを使用して検索条件を指定します。
例えば、usersというコレクションがあり、以下のようなドキュメントがあるとします:
[
{
"name": "Alice",
"age": 25,
"email": "alice@example.com"
},
{
"name": "Bob",
"age": 30,
"email": "bob@example.com"
},
{
"name": "Charlie",
"age": 35,
"email": "charlie@example.com"
}
]
nameとageのフィールドのみを含むドキュメントを返すには、次のクエリを使用できます。
db.users.find({}, { name: 1, age: 1, _id: 0 })
以下の情報が返されます。
[
{
"name": "Alice",
"age": 25
},
{
"name": "Bob",
"age": 30
},
{
"name": "Charlie",
"age": 35
}
]
射影演算子では、1が指定されているフィールドは返され、0のフィールドは返されません。_idフィールドを除き、他のフィールドを返す場合は明示的に指定する必要があります。射影演算子が指定されていない場合は、デフォルトで全てのフィールドが返されます。
注意:もしクエリの条件が空オブジェクト{}なら、すべてのドキュメントを検索し、指定したフィールドを返します。