プロジェクション
項目一覧
デフォルトでは、MongoDB のクエリは一致するドキュメント内のすべてのフィールドを返します。 MongoDB がアプリケーションに送信するデータ量を制限するには、クエリ操作にプロジェクションドキュメントを含めることができます。
プロジェクション ドキュメント
プロジェクション ドキュメントは、一致するすべてのドキュメントに対して返されるフィールドを制限します。 プロジェクション ドキュメントは、含めるフィールドまたは除外するフィールドを指定でき、形式は次のとおりです。
{ 'projection': { field1: <value>, field2: <value> ... } }
<value>
false
true
0
には1
_id
フィールドを除き、同じプロジェクション ドキュメントに包含と除外の両方を含めることはできません。
例
次のコード例では、 restaurants
サンプル データセットを使用します。
クエリフィルターに一致するドキュメントのname
、cuisine
、_id
フィールドのみを返すには、プロジェクション ドキュメントにname
cuisine
フィールドと フィールドを明示的に含めます。_id
フィールドは明示的に除外されない限り、自動的に含まれます。
client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'test') collection = client[:restaurants] collection.find({}, { 'projection' => { 'name' => 1, 'cuisine' => 1 } }).limit(5).each do |doc| p doc end
name
とcuisine
を返し、 _id
を含む他のすべてのフィールドを除外するには、次のプロジェクション ドキュメントを使用します。
{ 'projection' => { 'name' => 1, 'cuisine' => 1, '_id' => 0 } }
住所 フィールドを除くすべてのフィールドを返すには、次の を使用します。
{ 'projection' => { 'address' => 0 } }