프로젝션
기본적으로 MongoDB의 쿼리는 일치하는 문서의 모든 필드를 반환합니다. MongoDB가 애플리케이션으로 전송하는 데이터의 양을 제한하기 위해 쿼리 작업에 프로젝션 문서를 포함할 수 있습니다.
프로젝션 문서
프로젝션 문서는 일치하는 모든 문서에 대해 반환할 필드를 제한합니다. 프로젝션 문서는 필드 포함 또는 필드 제외를 지정할 수 있으며 다음과 같은 형식을 갖습니다.
{ 'projection': { field1: <value>, field2: <value> ... } }
<value>
필드를 제외하려면 0
(또는 false
)이고, 필드를 포함하려면 1
(또는 true
)일 수 있습니다. _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 } }