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フィールドを除き、他のフィールドを返す場合は明示的に指定する必要があります。射影演算子が指定されていない場合は、デフォルトで全てのフィールドが返されます。

注意:もしクエリの条件が空オブジェクト{}なら、すべてのドキュメントを検索し、指定したフィールドを返します。

bannerAds