Docs Menu
Docs Home
/ / /
C#/.NET
/ / /

반환할 필드 지정

이 페이지의 내용

  • 개요
  • 샘플 데이터
  • 프로젝션 유형
  • 포함할 필드 지정
  • _id 필드 제외
  • 제외할 필드 지정
  • 추가 정보
  • API 문서

이 가이드에서는 프로젝션 을 사용하여 읽기 작업에서 반환할 필드를 지정하는 방법을 배울 수 있습니다. 프로젝션은 MongoDB가 쿼리에서 반환하는 필드를 지정하는 문서입니다.

이 가이드 의 예제에서는 Atlas 샘플 데이터 세트sample_restaurants.restaurants 컬렉션 을 사용합니다. 무료 MongoDB Atlas cluster 를 생성하고 샘플 데이터 세트를 로드하는 방법을 학습 보려면 빠른 시작을 참조하세요.

프로젝션 을 사용하여 반환 문서 에 포함할 필드를 지정하거나 제외할 필드를 지정할 수 있습니다.

프로젝션 에 포함할 특정 필드를 지정할 때 다른 모든 필드는 암시적으로 제외됩니다( 기본값 포함되는 _id 필드 제외). _id 필드 를 제외하지 않는 한 단일 프로젝션 에서 포함 및 제외 문을 결합할 수 없습니다.

반환 문서 에서 _id 필드 를 제거 하려면 해당 필드를 명시적으로 제외해야 합니다.

결과에 포함할 필드를 지정하려면 Project() 메서드를 Find() 메서드에 연결합니다. Project() 메서드를 호출할 때는 프로젝션 정의를 매개변수로 전달해야 합니다. Builders<T>.Projection.Include() 메서드를 사용하고 매개 변수로 포함할 필드 이름을 전달하여 프로젝션 정의를 구성할 수 있습니다. 이 메서드를 연결하여 프로젝션 에 여러 필드를 포함할 수 있습니다.

다음 예시 에서는 Find() 메서드를 사용하여 name 필드 값이 "Emerald Pub"인 모든 레스토랑을 찾습니다. 그런 다음 이 코드는 Project() 메서드를 호출하여 결과에 namecuisine 필드를 포함하도록 찾기 작업에 지시합니다.

var filter = Builders<BsonDocument>.Filter.Eq("name", "Emerald Pub");
var projection = Builders<BsonDocument>.Projection
.Include("name")
.Include("cuisine");
var results = collection.Find(filter).Project(projection).ToList();
foreach (var result in results)
{
Console.WriteLine(result.ToJson());
}
{ "_id" : ObjectId("..."), "cuisine" : "American", "name" : "Emerald Pub" }
{ "_id" : ObjectId("..."), "cuisine" : "American", "name" : "Emerald Pub" }

포함할 필드를 지정할 때 반환된 문서에서 _id 필드를 제외할 수도 있습니다.

다음 예시 에서는 앞의 예시 와 동일한 쿼리 를 실행하지만 프로젝션 에서 _id 필드 를 제외합니다.

var filter = Builders<BsonDocument>.Filter.Eq("name", "Emerald Pub");
var projection = Builders<BsonDocument>.Projection
.Include("name")
.Include("cuisine")
.Exclude("_id");
var results = collection.Find(filter).Project(projection).ToList();
foreach (var result in results)
{
Console.WriteLine(result.ToJson());
}
{ "cuisine" : "American", "name" : "Emerald Pub" }
{ "cuisine" : "American", "name" : "Emerald Pub" }

결과에서 제외할 필드를 지정하려면 Project() 메서드를 Find() 메서드에 연결합니다. Builders<T>.Projection.Exclude() 메서드를 사용하고 제외할 필드 이름을 매개 변수로 전달하여 프로젝션 에서 필드를 제외할 수 있습니다. 이 메서드를 연결하여 프로젝션 에서 여러 필드를 제외할 수 있습니다.

다음 예시 에서는 Find() 메서드를 사용하여 name 필드 값이 "Emerald Pub"인 모든 레스토랑을 찾습니다. 그런 다음 프로젝션 을 사용하여 반환된 문서에서 cuisine 필드 를 제외합니다.

var filter = Builders<BsonDocument>.Filter.Eq("name", "Emerald Pub");
var projection = Builders<BsonDocument>.Projection
.Exclude("cuisine");
var results = collection.Find(filter).Project(projection).ToList();
foreach (var result in results)
{
Console.WriteLine(result.ToJson());
}
{ "_id" : ObjectId("..."), "address" : { "building" : "308", "coord" : [-74.008493599999994, 40.725807199999998], "street" : "Spring Street", "zipcode" : "10013" }, "borough" : "Manhattan", "grades" : [{ "date" : ISODate("2014-02-24T00:00:00Z"), "grade" : "A", "score" : 5 }, { "date" : ISODate("2013-08-26T00:00:00Z"), "grade" : "A", "score" : 13 }, { "date" : ISODate("2013-03-04T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2012-06-25T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-12-23T00:00:00Z"), "grade" : "A", "score" : 10 }, { "date" : ISODate("2011-07-26T00:00:00Z"), "grade" : "C", "score" : 32 }], "name" : "Emerald Pub", "restaurant_id" : "40367329" }
{ "_id" : ObjectId("..."), "address" : { "building" : "18301", "coord" : [-73.791184999999999, 40.740119999999997], "street" : "Horace Harding Expressway", "zipcode" : "11365" }, "borough" : "Queens", "grades" : [{ "date" : ISODate("2014-05-07T00:00:00Z"), "grade" : "A", "score" : 12 }, { "date" : ISODate("2013-04-30T00:00:00Z"), "grade" : "A", "score" : 9 }, { "date" : ISODate("2012-03-01T00:00:00Z"), "grade" : "A", "score" : 13 }], "name" : "Emerald Pub", "restaurant_id" : "40668598" }

프로젝션에 학습 보려면 MongoDB Server 매뉴얼의 프로젝트 필드 가이드 를 참조하세요.

이 가이드 에 설명된 함수 또는 유형에 학습 보려면 다음 API 설명서를 참조하세요.

돌아가기

Retrieve Data