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

빌더와의 운영

이 페이지의 내용

  • 개요
  • 샘플 클래스
  • 필터 만들기
  • 배열 연산자
  • 프로젝션 만들기
  • Lambda 표현식
  • 정렬 정의
  • 업데이트 정의
  • 인덱스 키 정의
  • 집계 파이프라인 구축
  • 컬렉션에 파이프라인 결과 쓰기
  • Atlas Search 쿼리 작성
  • Atlas Vector Search 수행
  • 추가 정보
  • API 문서

이 가이드에서는 .NET/C# 드라이버가 작업에 사용되는 유형을 생성하기 위해 제공하는 헬퍼 클래스 또는 빌더에 대해 알아볼 수 있습니다. 빌더를 사용하면 컴파일 타임의 오류를 식별하여 런타임 오류를 방지할 수 있습니다. 이 가이드에서는 다음 작업에 사용할 수 있는 빌더 클래스에 대한 정보를 제공합니다.

  • 필터 정의 만들기

  • 프로젝션 만들기

  • 정렬 순서 정의

  • 업데이트 작업 정의

  • 인덱스 키 선택

MongoDB C# 분석기

C# Analyzer는 빌더 정의를 분석하고 .NET/C# 코드가 MongoDB 쿼리 API로 변환되는 방식을 이해하는 도구입니다. 자세한 내용 및 설치 지침은 C# Analzyer 참조 페이지를 참조하세요.

이 가이드를 통해 빌더를 사용하여 정의를 구성하고 구문을 작성하는 방법을 자세히 알아볼 수 있습니다.

이 가이드의 코드 예시는 빌더를 사용하여 plants.flowers 샘플 컬렉션의 문서와 상호 작용하는 유형을 만드는 방법을 보여줍니다. 이 컬렉션의 문서는 다음 Flower 클래스에 의해 모델링됩니다:

public class Flower
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public string Category { get; set; }
public double Price { get; set; }
public List<string> Season { get; set; }
public double Stock { get; set; }
public string Description { get; set; }
}

각 빌더 클래스는 작업 중인 문서 유형을 나타내는 일반적인(generic) 형식 매개 변수 TDocument를 사용합니다. 이 가이드에서 Flower 클래스는 각 빌더 클래스 예시에 사용되는 문서 유형입니다.

FilterDefinitionBuilder 클래스는 쿼리 구성을 위해 형식 안정(type-safe) 인터페이스를 제공합니다. 다음 기준과 일치하는 문서에 대한 컬렉션을 쿼리한다고 가정해 보겠습니다.

  • Price 필드 값이 20 미만인 경우

  • Category 필드 값은 'Perennial'입니다

빌더를 사용하여 형식화된 버전으로 필터 정의를 생성합니다.

var builder = Builders<Flower>.Filter;
var filter = builder.Lt(f => f.Price, 20) & builder.Eq(f => f.Category, "Perennial");

형식화된 버전 양식을 사용하면 컴파일 시 안전성을 높일 수 있습니다. 또한 IDE에서 리팩터링 지원을 제공할 수도 있습니다.

또는 문자열 기반 필드 이름을 사용하여 필터를 구성할 수 있습니다.

var builder = Builders<Flower>.Filter;
var filter = builder.Lt("Price", 20) & builder.Eq("Category", "Perennial");

문서에 배열로 직렬화하는 속성이나 필드가 있는 경우 Any로 시작하는 메서드(예: AnyEq() 또는 AnyLt())를 사용하여 전체 배열을 단일 항목과 비교할 수 있습니다.

빌더를 사용하여 'winter'를 포함하는 Season 배열이 있는 컬렉션 내 문서를 확인할 수 있습니다.

var builder = Builders<Flower>.Filter;
var filter = builder.AnyEq(f => f.Season, "winter");

ElemMatch() 메서드를 호출하여 지정된 검색 기준과 일치하는 요소를 하나 이상 포함하는 배열 필드 가 있는 문서를 찾을 수도 있습니다. 다음 예시 에서는 Season 배열 에 "Summer" 값이 포함된 문서를 반환합니다.

var builder = Builders<Flower>.Filter;
var filter = builder.ElemMatch(f => f.Season, s => s == "Summer");

배열 연산자에 대해 자세히 알아보려면 매뉴얼의 배열 쿼리 연산자 가이드를 MongoDB Server 참조하세요.

ProjectionDefinitionBuilder 클래스는 프로젝션을 정의하기 위해 형식 안전(type-safe) 인터페이스를 제공합니다. NamePrice 필드에 프로젝션을 생성하고 Id 필드는 제외하려는 경우를 가정해 보겠습니다.

빌더를 사용하여 입력된 변형으로 프로젝션 정의를 생성합니다.

var builder = Builders<Flower>.Projection;
var projection = builder.Include(f => f.Name).Include(f => f.Price).Exclude(f => f.Id);

문자열 기반 필드 이름을 사용하여 프로젝션을 정의할 수도 있습니다.

var builder = Builders<Flower>.Projection;
var projection = builder.Include("Name").Include("Price").Exclude("Id");

마지막으로 Expression() 메서드를 사용하여 프로젝션을 정의할 수 있습니다:

var builder = Builders<Flower>.Projection;
var projection = builder.Expression(f => new { Name = f.Name, Price = f.Price });

이 정의는 반환 유형이 ProjectionDefinition<TDocument, TProjection>인 반면 다른 정의는 ProjectionDefinition<TDocument> 유형을 반환합니다.

이 드라이버는 Lambda 표현식을 사용한 프로젝션 렌더링을 지원합니다. Expression() 메서드를 사용하여 Find() 프로젝션을 정의하여 Lambda 표현식을 만드는 경우, 드라이버는 표현식을 검사하여 참고할 필드를 확인하고 해당 필드만 반환하도록 서버 쪽 프로젝션을 자동으로 생성합니다.

Lambda 표현식을 사용하면 문서의 값에 대한 작업을 수행하여 새 필드를 만들 수도 있습니다. 다음 예시는 Lambda 표현식을 통해 PriceStock 필드를 사용하여 새 Profit 필드를 프로젝션하는 방법을 보여줍니다.

var builder = Builders<Flower>.Projection;
var projection = builder.Expression(f => new { Profit = f.Price * f.Stock });

참고

ID 필드 제외

Lambda 표현식을 사용하여 프로젝션을 생성하면 Id 필드를 프로젝션 필드로 명시적으로 포함하지 않는 한 출력에서 자동으로 제외됩니다.

SortDefinitionBuilder 클래스는 구문 구성을 위해 형식 안정(type-safe) 인터페이스를 제공합니다. 다음과 같은 순서로 정렬을 정의하고 싶다고 가정해 보겠습니다:

  • 오름차순 Price

  • 내림차순 Category

빌더를 사용하여 형식화된 버전으로 정렬 정의를 생성합니다.

var builder = Builders<Flower>.Sort;
var sort = builder.Ascending(f => f.Price).Descending(f => f.Category);

또는 문자열 기반 필드 이름을 사용하여 정렬을 정의할 수 있습니다.

var builder = Builders<Flower>.Sort;
var sort = builder.Ascending("Price").Descending("Category");

UpdateDefinitionBuilder 클래스는 업데이트 사양을 위해 형식 안정(type-safe) 인터페이스를 제공합니다. 다음 기준을 사용하여 업데이트 사양을 만들려고 한다고 가정해 보겠습니다.

  • 새 필드 만들기 SunRequirement

  • Price 필드 값에 0.9를 곱합니다.

빌더를 사용하여 형식화된 버전으로 업데이트 사양을 생성합니다.

var builder = Builders<Flower>.Update;
var update = builder.Set(f => f.SunRequirement, "Full sun").Mul(f => f.Price, 0.9);

또는 문자열 기반 필드 이름을 사용하여 업데이트를 정의할 수도 있습니다:

var builder = Builders<Flower>.Update;
var update = builder.Set("SunRequirement", "Full sun").Mul("Price", 0.9);

IndexKeysDefinitionBuilder 클래스는 인덱스 키를 정의하기 위한 형식 안전(type-safe) 인터페이스를 제공합니다. 오름차순 인덱스 키로 Category를 선택한다고 가정해 보겠습니다.

빌더를 사용하여 입력된 변형으로 인덱스 키를 선택합니다.

var builder = Builders<Flower>.IndexKeys;
var keys = builder.Ascending(f => f.Category);

또는 문자열 기반 필드 이름을 사용하여 인덱스 키를 선택할 수 있습니다.

var builder = Builders<BsonDocument>.IndexKeys;
var keys = builder.Ascending("Category");

IndexKeysDefinitionBuilder 클래스는 와일드카드 인덱스를 빌드하는 메서드도 제공합니다. All field paths 또는 A single field path을(를) 사용하여 와일드카드 인덱스를 생성할 수 있으며, 이 경우 Category을(를) 사용합니다.

var builder = Builders<Flower>.IndexKeys;
var keys = builder.Wildcard();
var builder = Builders<Flower>.IndexKeys;
// Using the typed variant
var keys = builder.Wildcard(f => f.Category);
// Using string-based field names
var keys = builder.Wildcard("Category");

와일드카드 인덱스 사용 방법에 대한 자세한 내용은 와일드카드 인덱스를 참조하세요.

PipelineDefinitionBuilder 클래스는 집계 파이프라인을 정의하기 위한 유형 안전 인터페이스를 제공합니다. 집계 파이프라인은 문서를 변환하는 데 사용되는 일련의 단계입니다. 다음 작업을 수행하는 파이프라인을 생성한다고 가정해 보겠습니다.

  • 모든 문서를 Season 필드에서 'spring' 과 일치시킵니다.

  • Category 필드를 기준으로 결과를 정렬합니다.

  • 문서를 카테고리별로 그룹화하고 해당 카테고리의 모든 문서에 대해 사용 가능한 평균 가격과 총액을 표시합니다.

PipelineDefinitionBuilder 클래스를 사용하여 파이프라인을 빌드합니다:

var sortBuilder = Builders<Flower>.Sort.Ascending(f => f.Category);
var matchFilter = Builders<Flower>.Filter.AnyEq(f => f.Season, "spring");
var pipeline = new EmptyPipelineDefinition<Flower>()
.Match(matchFilter)
.Sort(sortBuilder)
.Group(f => f.Category,
g => new
{
name = g.Key,
avgPrice = g.Average(f => f.Price),
totalAvailable = g.Sum(f => f.Stock)
}
);

앞의 예는 다음과 같은 파이프라인을 생성합니다:

[{ "$match" : { "season" : "spring" } }, { "$sort" : { "category" : 1 } }, { "$group" : { "_id" : "$category", "avgPrice" : { "$avg" : "$price" }, "totalAvailable" : { "$sum" : "$stock" } } }]

PipelineDefinitionBuilder 인터페이스에 상응하는 형식 안정(type-safe) 메서드가 없는 경우, 쿼리를 BsonDocumentAppendStage() 메서드에 제공하여 파이프라인에 단계를 추가할 수 있습니다.

var pipeline = new EmptyPipelineDefinition<BsonDocument>().AppendStage<BsonDocument, BsonDocument, BsonDocument>("{ $set: { field1: '$field2' } }");

참고

BsonDocument를 사용하여 파이프라인 단계를 정의할 경우 드라이버는 BsonClassMap, 직렬화 속성 또는 직렬화 규칙 등을 전혀 고려하지 않습니다. BsonDocument에 사용된 필드 이름은 서버에 저장된 필드 이름과 일치해야 합니다.

쿼리를 BsonDocument로 제공하는 방법에 대한 자세한 내용은 FAQ 페이지를 참조하세요.

집계 파이프라인에 대한 자세한 내용은 집계 파이프라인 서버 매뉴얼 페이지를 참조하십시오.

집계 파이프라인 끝에 $out 단계를 만들어 집계 파이프라인에서 반환된 문서를 컬렉션에 쓸 수 있습니다. $out 단계를 만들려면 PipelineStageDefinitionBuilder에서 Out() 메서드를 호출합니다. Out() 메서드에는 문서를 작성하려는 컬렉션의 이름이 필요합니다.

다음 예시에서는 season 필드 값이 "Spring"인 모든 문서를 일치시키고 springFlowers 컬렉션에 출력하는 집계 파이프라인을 빌드합니다.

var outputCollection = database.GetCollection("springFlowers");
var matchFilter = Builders<Flower>.Filter.AnyEq(f => f.Season, "spring");
// Creates an aggregation pipeline and outputs resulting documents to a new collection.
var pipeline = new EmptyPipelineDefinition<Flower>()
.Match(matchFilter)
.Out(outputCollection);

TimeSeriesOption 객체를 지정하고 이를 Out() 메서드에 두 번째 매개 변수로 전달하여 time series 컬렉션에 집계 파이프라인의 결과를 쓸 수 있습니다.

plants.flowers 컬렉션의 문서에 BSON 날짜 값을 보유한 datePlanted 필드가 포함되어 있다고 가정하겠습니다. datePlanted 필드를 시간 필드로 사용하여 이 컬렉션의 문서를 time series 컬렉션에 저장할 수 있습니다.

다음 예시에서는 TimeSeriesOptions 객체를 만들고 datePlantedtimeField로 지정합니다. 그런 다음 season 필드 값이 "Spring"인 모든 문서를 일치시키고 springFlowerTimes라는 time series 컬렉션에 출력하는 집계 파이프라인을 구축합니다.

var timeSeriesOptions = new TimeSeriesOptions("datePlanted");
var collectionName = "springFlowerTimes"
var matchFilter = Builders<Flower>.Filter.AnyEq(f => f.Season, "spring");
// Creates an aggregation pipeline and outputs resulting documents to a time series collection.
var pipeline = new EmptyPipelineDefinition<Flower>()
.Match(matchFilter)
.Out(collectionName, timeSeriesOptions);

time series 컬렉션에 대해 자세히 알아보려면 Time Series 컬렉션을 참조하세요.

Search 클래스는 $search 파이프라인 단계를 생성하기 위한 형식 안정(type-safe) 인터페이스를 제공합니다.

Search 클래스를 사용하여 검색 쿼리를 구성하는 방법을 알아보려면 Atlas Search를 참조하세요.

빌더를 사용하여 $vectorSearch 집계 파이프라인 단계를 생성하여 지정된 필드의 벡터에 대해 대략적인 근접 이웃 검색을 수행할 수 있습니다. 데이터에서 벡터 검색을 수행하려면 먼저 컬렉션에 정의된 Atlas Vector Search 인덱스가 있어야 합니다.

다음 예시에서 사용된 샘플 데이터 세트를 얻으려면 빠른 시작을 참조하세요. 다음 예시에 사용된 샘플 Atlas Vector Search 인덱스를 Atlas 매뉴얼의 Atlas Vector Search 인덱스 생성을 참조하세요.

sample_mflix 데이터베이스의 embedded_movies 컬렉션을 가정해 보겠습니다. $vectorSearch 단계를 사용하여 컬렉션에 있는 문서의 plot_embedding 필드에서 시맨틱 검색을 수행할 수 있습니다.

다음 예시는 빌더를 사용하여 집계 파이프라인을 생성하여 다음 작업을 수행하는 방법을 보여줍니다.

  • "time travel" 문자열에 대한 벡터 임베딩을 사용하여 plot_embedding 필드의 Atlas Vector Search 인덱스에서 벡터 검색을 수행합니다.

  • 벡터 검색에서 발견된 문서에서 TitlePlot 필드를 가져옵니다.

// Defines vector embeddings for the string "time travel"
var vector = new[] {-0.0016261312,-0.028070757,-0.011342932,-0.012775794,-0.0027440966,0.008683807,-0.02575152,-0.02020668,-0.010283281,-0.0041719596,0.021392956,0.028657231,-0.006634482,0.007490867,0.018593878,0.0038187427,0.029590257,-0.01451522,0.016061379,0.00008528442,-0.008943722,0.01627464,0.024311995,-0.025911469,0.00022596726,-0.008863748,0.008823762,-0.034921836,0.007910728,-0.01515501,0.035801545,-0.0035688248,-0.020299982,-0.03145631,-0.032256044,-0.028763862,-0.0071576433,-0.012769129,0.012322609,-0.006621153,0.010583182,0.024085402,-0.001623632,0.007864078,-0.021406285,0.002554159,0.012229307,-0.011762793,0.0051682983,0.0048484034,0.018087378,0.024325324,-0.037694257,-0.026537929,-0.008803768,-0.017767483,-0.012642504,-0.0062712682,0.0009771782,-0.010409906,0.017754154,-0.004671795,-0.030469967,0.008477209,-0.005218282,-0.0058480743,-0.020153364,-0.0032805866,0.004248601,0.0051449724,0.006791097,0.007650814,0.003458861,-0.0031223053,-0.01932697,-0.033615597,0.00745088,0.006321252,-0.0038154104,0.014555207,0.027697546,-0.02828402,0.0066711367,0.0077107945,0.01794076,0.011349596,-0.0052715978,0.014755142,-0.019753495,-0.011156326,0.011202978,0.022126047,0.00846388,0.030549942,-0.0041386373,0.018847128,-0.00033655585,0.024925126,-0.003555496,-0.019300312,0.010749794,0.0075308536,-0.018287312,-0.016567878,-0.012869096,-0.015528221,0.0078107617,-0.011156326,0.013522214,-0.020646535,-0.01211601,0.055928253,0.011596181,-0.017247654,0.0005939711,-0.026977783,-0.003942035,-0.009583511,-0.0055248477,-0.028737204,0.023179034,0.003995351,0.0219661,-0.008470545,0.023392297,0.010469886,-0.015874773,0.007890735,-0.009690142,-0.00024970944,0.012775794,0.0114762215,0.013422247,0.010429899,-0.03686786,-0.006717788,-0.027484283,0.011556195,-0.036068123,-0.013915418,-0.0016327957,0.0151016945,-0.020473259,0.004671795,-0.012555866,0.0209531,0.01982014,0.024485271,0.0105431955,-0.005178295,0.033162415,-0.013795458,0.007150979,0.010243294,0.005644808,0.017260984,-0.0045618312,0.0024725192,0.004305249,-0.008197301,0.0014203656,0.0018460588,0.005015015,-0.011142998,0.01439526,0.022965772,0.02552493,0.007757446,-0.0019726837,0.009503538,-0.032042783,0.008403899,-0.04609149,0.013808787,0.011749465,0.036388017,0.016314628,0.021939443,-0.0250051,-0.017354285,-0.012962398,0.00006107364,0.019113706,0.03081652,-0.018114036,-0.0084572155,0.009643491,-0.0034721901,0.0072642746,-0.0090636825,0.01642126,0.013428912,0.027724205,0.0071243206,-0.6858542,-0.031029783,-0.014595194,-0.011449563,0.017514233,0.01743426,0.009950057,0.0029706885,-0.015714826,-0.001806072,0.011856096,0.026444625,-0.0010663156,-0.006474535,0.0016161345,-0.020313311,0.0148351155,-0.0018393943,0.0057347785,0.018300641,-0.018647194,0.03345565,-0.008070676,0.0071443142,0.014301958,0.0044818576,0.003838736,-0.007350913,-0.024525259,-0.001142124,-0.018620536,0.017247654,0.007037683,0.010236629,0.06046009,0.0138887605,-0.012122675,0.037694257,0.0055081863,0.042492677,0.00021784494,-0.011656162,0.010276617,0.022325981,0.005984696,-0.009496873,0.013382261,-0.0010563189,0.0026507939,-0.041639622,0.008637156,0.026471283,-0.008403899,0.024858482,-0.00066686375,-0.0016252982,0.027590916,0.0051449724,0.0058647357,-0.008743787,-0.014968405,0.027724205,-0.011596181,0.0047650975,-0.015381602,0.0043718936,0.002159289,0.035908177,-0.008243952,-0.030443309,0.027564257,0.042625964,-0.0033688906,0.01843393,0.019087048,0.024578573,0.03268257,-0.015608194,-0.014128681,-0.0033538956,-0.0028757197,-0.004121976,-0.032389335,0.0034322033,0.058807302,0.010943064,-0.030523283,0.008903735,0.017500903,0.00871713,-0.0029406983,0.013995391,-0.03132302,-0.019660193,-0.00770413,-0.0038853872,0.0015894766,-0.0015294964,-0.006251275,-0.021099718,-0.010256623,-0.008863748,0.028550599,0.02020668,-0.0012962399,-0.003415542,-0.0022509254,0.0119360695,0.027590916,-0.046971202,-0.0015194997,-0.022405956,0.0016677842,-0.00018535563,-0.015421589,-0.031802863,0.03814744,0.0065411795,0.016567878,-0.015621523,0.022899127,-0.011076353,0.02841731,-0.002679118,-0.002342562,0.015341615,0.01804739,-0.020566562,-0.012989056,-0.002990682,0.01643459,0.00042527664,0.008243952,-0.013715484,-0.004835075,-0.009803439,0.03129636,-0.021432944,0.0012087687,-0.015741484,-0.0052016205,0.00080890034,-0.01755422,0.004811749,-0.017967418,-0.026684547,-0.014128681,0.0041386373,-0.013742141,-0.010056688,-0.013268964,-0.0110630235,-0.028337335,0.015981404,-0.00997005,-0.02424535,-0.013968734,-0.028310679,-0.027750863,-0.020699851,0.02235264,0.001057985,0.00081639783,-0.0099367285,0.013522214,-0.012016043,-0.00086471526,0.013568865,0.0019376953,-0.019020405,0.017460918,-0.023045745,0.008503866,0.0064678704,-0.011509543,0.018727167,-0.003372223,-0.0028690554,-0.0027024434,-0.011902748,-0.012182655,-0.015714826,-0.0098634185,0.00593138,0.018753825,0.0010146659,0.013029044,0.0003521757,-0.017620865,0.04102649,0.00552818,0.024485271,-0.009630162,-0.015608194,0.0006718621,-0.0008418062,0.012395918,0.0057980907,0.016221326,0.010616505,0.004838407,-0.012402583,0.019900113,-0.0034521967,0.000247002,-0.03153628,0.0011038032,-0.020819811,0.016234655,-0.00330058,-0.0032289368,0.00078973995,-0.021952773,-0.022459272,0.03118973,0.03673457,-0.021472929,0.0072109587,-0.015075036,0.004855068,-0.0008151483,0.0069643734,0.010023367,-0.010276617,-0.023019087,0.0068244194,-0.0012520878,-0.0015086699,0.022046074,-0.034148756,-0.0022192693,0.002427534,-0.0027124402,0.0060346797,0.015461575,0.0137554705,0.009230294,-0.009583511,0.032629255,0.015994733,-0.019167023,-0.009203636,0.03393549,-0.017274313,-0.012042701,-0.0009930064,0.026777849,-0.013582194,-0.0027590916,-0.017594207,-0.026804507,-0.0014236979,-0.022032745,0.0091236625,-0.0042419364,-0.00858384,-0.0033905501,-0.020739838,0.016821127,0.022539245,0.015381602,0.015141681,0.028817179,-0.019726837,-0.0051283115,-0.011489551,-0.013208984,-0.0047017853,-0.0072309524,0.01767418,0.0025658219,-0.010323267,0.012609182,-0.028097415,0.026871152,-0.010276617,0.021912785,0.0022542577,0.005124979,-0.0019710176,0.004518512,-0.040360045,0.010969722,-0.0031539614,-0.020366628,-0.025778178,-0.0110030435,-0.016221326,0.0036587953,0.016207997,0.003007343,-0.0032555948,0.0044052163,-0.022046074,-0.0008822095,-0.009363583,0.028230704,-0.024538586,0.0029840174,0.0016044717,-0.014181997,0.031349678,-0.014381931,-0.027750863,0.02613806,0.0004136138,-0.005748107,-0.01868718,-0.0010138329,0.0054348772,0.010703143,-0.003682121,0.0030856507,-0.004275259,-0.010403241,0.021113047,-0.022685863,-0.023032416,0.031429652,0.001792743,-0.005644808,-0.011842767,-0.04078657,-0.0026874484,0.06915057,-0.00056939584,-0.013995391,0.010703143,-0.013728813,-0.022939114,-0.015261642,-0.022485929,0.016807798,0.007964044,0.0144219175,0.016821127,0.0076241563,0.005461535,-0.013248971,0.015301628,0.0085171955,-0.004318578,0.011136333,-0.0059047225,-0.010249958,-0.018207338,0.024645219,0.021752838,0.0007614159,-0.013648839,0.01111634,-0.010503208,-0.0038487327,-0.008203966,-0.00397869,0.0029740208,0.008530525,0.005261601,0.01642126,-0.0038753906,-0.013222313,0.026537929,0.024671877,-0.043505676,0.014195326,0.024778508,0.0056914594,-0.025951454,0.017620865,-0.0021359634,0.008643821,0.021299653,0.0041686273,-0.009017031,0.04044002,0.024378639,-0.027777521,-0.014208655,0.0028623908,0.042119466,0.005801423,-0.028124074,-0.03129636,0.022139376,-0.022179363,-0.04067994,0.013688826,0.013328944,0.0046184794,-0.02828402,-0.0063412455,-0.0046184794,-0.011756129,-0.010383247,-0.0018543894,-0.0018593877,-0.00052024535,0.004815081,0.014781799,0.018007403,0.01306903,-0.020433271,0.009043689,0.033189073,-0.006844413,-0.019766824,-0.018767154,0.00533491,-0.0024575242,0.018727167,0.0058080875,-0.013835444,0.0040719924,0.004881726,0.012029372,0.005664801,0.03193615,0.0058047553,0.002695779,0.009290274,0.02361889,0.017834127,0.0049017193,-0.0036388019,0.010776452,-0.019793482,0.0067777685,-0.014208655,-0.024911797,0.002385881,0.0034988478,0.020899786,-0.0025858153,-0.011849431,0.033189073,-0.021312982,0.024965113,-0.014635181,0.014048708,-0.0035921505,-0.003347231,0.030869836,-0.0017161017,-0.0061346465,0.009203636,-0.025165047,0.0068510775,0.021499587,0.013782129,-0.0024475274,-0.0051149824,-0.024445284,0.006167969,0.0068844,-0.00076183246,0.030150073,-0.0055948244,-0.011162991,-0.02057989,-0.009703471,-0.020646535,0.008004031,0.0066378145,-0.019900113,-0.012169327,-0.01439526,0.0044252095,-0.004018677,0.014621852,-0.025085073,-0.013715484,-0.017980747,0.0071043274,0.011456228,-0.01010334,-0.0035321703,-0.03801415,-0.012036037,-0.0028990454,-0.05419549,-0.024058744,-0.024272008,0.015221654,0.027964126,0.03182952,-0.015354944,0.004855068,0.011522872,0.004771762,0.0027874154,0.023405626,0.0004242353,-0.03132302,0.007057676,0.008763781,-0.0027057757,0.023005757,-0.0071176565,-0.005238275,0.029110415,-0.010989714,0.013728813,-0.009630162,-0.029137073,-0.0049317093,-0.0008630492,-0.015248313,0.0043219104,-0.0055681667,-0.013175662,0.029723546,0.025098402,0.012849103,-0.0009996708,0.03118973,-0.0021709518,0.0260181,-0.020526575,0.028097415,-0.016141351,0.010509873,-0.022965772,0.002865723,0.0020493253,0.0020509914,-0.0041419696,-0.00039695262,0.017287642,0.0038987163,0.014795128,-0.014661839,-0.008950386,0.004431874,-0.009383577,0.0012604183,-0.023019087,0.0029273694,-0.033135757,0.009176978,-0.011023037,-0.002102641,0.02663123,-0.03849399,-0.0044152127,0.0004527676,-0.0026924468,0.02828402,0.017727496,0.035135098,0.02728435,-0.005348239,-0.001467017,-0.019766824,0.014715155,0.011982721,0.0045651635,0.023458943,-0.0010046692,-0.0031373003,-0.0006972704,0.0019043729,-0.018967088,-0.024311995,0.0011546199,0.007977373,-0.004755101,-0.010016702,-0.02780418,-0.004688456,0.013022379,-0.005484861,0.0017227661,-0.015394931,-0.028763862,-0.026684547,0.0030589928,-0.018513903,0.028363993,0.0044818576,-0.009270281,0.038920518,-0.016008062,0.0093902415,0.004815081,-0.021059733,0.01451522,-0.0051583014,0.023765508,-0.017874114,-0.016821127,-0.012522544,-0.0028390652,0.0040886537,0.020259995,-0.031216389,-0.014115352,-0.009176978,0.010303274,0.020313311,0.0064112223,-0.02235264,-0.022872468,0.0052449396,0.0005723116,0.0037321046,0.016807798,-0.018527232,-0.009303603,0.0024858483,-0.0012662497,-0.007110992,0.011976057,-0.007790768,-0.042999174,-0.006727785,-0.011829439,0.007024354,0.005278262,-0.017740825,-0.0041519664,0.0085905045,0.027750863,-0.038387362,0.024391968,0.00087721116,0.010509873,-0.00038508154,-0.006857742,0.0183273,-0.0037054466,0.015461575,0.0017394272,-0.0017944091,0.014181997,-0.0052682655,0.009023695,0.00719763,-0.013522214,0.0034422,0.014941746,-0.0016711164,-0.025298337,-0.017634194,0.0058714002,-0.005321581,0.017834127,0.0110630235,-0.03369557,0.029190388,-0.008943722,0.009363583,-0.0034222065,-0.026111402,-0.007037683,-0.006561173,0.02473852,-0.007084334,-0.010110005,-0.008577175,0.0030439978,-0.022712521,0.0054582027,-0.0012620845,-0.0011954397,-0.015741484,0.0129557345,-0.00042111133,0.00846388,0.008930393,0.016487904,0.010469886,-0.007917393,-0.011762793,-0.0214596,0.000917198,0.021672864,0.010269952,-0.007737452,-0.010243294,-0.0067244526,-0.015488233,-0.021552904,0.017127695,0.011109675,0.038067464,0.00871713,-0.0025591573,0.021312982,-0.006237946,0.034628596,-0.0045251767,0.008357248,0.020686522,0.0010696478,0.0076708077,0.03772091,-0.018700508,-0.0020676525,-0.008923728,-0.023298996,0.018233996,-0.010256623,0.0017860786,0.009796774,-0.00897038,-0.01269582,-0.018527232,0.009190307,-0.02372552,-0.042119466,0.008097334,-0.0066778013,-0.021046404,0.0019593548,0.011083017,-0.0016028056,0.012662497,-0.000059095124,0.0071043274,-0.014675168,0.024831824,-0.053582355,0.038387362,0.0005698124,0.015954746,0.021552904,0.031589597,-0.009230294,-0.0006147976,0.002625802,-0.011749465,-0.034362018,-0.0067844326,-0.018793812,0.011442899,-0.008743787,0.017474247,-0.021619547,0.01831397,-0.009037024,-0.0057247817,-0.02728435,0.010363255,0.034415334,-0.024032086,-0.0020126705,-0.0045518344,-0.019353628,-0.018340627,-0.03129636,-0.0034038792,-0.006321252,-0.0016161345,0.033642255,-0.000056075285,-0.005005019,0.004571828,-0.0024075406,-0.00010215386,0.0098634185,0.1980148,-0.003825407,-0.025191706,0.035161756,0.005358236,0.025111731,0.023485601,0.0023342315,-0.011882754,0.018287312,-0.0068910643,0.003912045,0.009243623,-0.001355387,-0.028603915,-0.012802451,-0.030150073,-0.014795128,-0.028630573,-0.0013487226,0.002667455,0.00985009,-0.0033972147,-0.021486258,0.009503538,-0.017847456,0.013062365,-0.014341944,0.005078328,0.025165047,-0.015594865,-0.025924796,-0.0018177348,0.010996379,-0.02993681,0.007324255,0.014475234,-0.028577257,0.005494857,0.00011725306,-0.013315615,0.015941417,0.009376912,0.0025158382,0.008743787,0.023832154,-0.008084005,-0.014195326,-0.008823762,0.0033455652,-0.032362677,-0.021552904,-0.0056081535,0.023298996,-0.025444955,0.0097301295,0.009736794,0.015274971,-0.0012937407,-0.018087378,-0.0039387033,0.008637156,-0.011189649,-0.00023846315,-0.011582852,0.0066411467,-0.018220667,0.0060846633,0.0376676,-0.002709108,0.0072776037,0.0034188742,-0.010249958,-0.0007747449,-0.00795738,-0.022192692,0.03910712,0.032122757,0.023898797,0.0076241563,-0.007397564,-0.003655463,0.011442899,-0.014115352,-0.00505167,-0.031163072,0.030336678,-0.006857742,-0.022259338,0.004048667,0.02072651,0.0030156737,-0.0042119464,0.00041861215,-0.005731446,0.011103011,0.013822115,0.021512916,0.009216965,-0.006537847,-0.027057758,-0.04054665,0.010403241,-0.0056281467,-0.005701456,-0.002709108,-0.00745088,-0.0024841821,0.009356919,-0.022659205,0.004061996,-0.013175662,0.017074378,-0.006141311,-0.014541878,0.02993681,-0.00028448965,-0.025271678,0.011689484,-0.014528549,0.004398552,-0.017274313,0.0045751603,0.012455898,0.004121976,-0.025458284,-0.006744446,0.011822774,-0.015035049,-0.03257594,0.014675168,-0.0039187097,0.019726837,-0.0047251107,0.0022825818,0.011829439,0.005391558,-0.016781142,-0.0058747325,0.010309938,-0.013049036,0.01186276,-0.0011246296,0.0062112883,0.0028190718,-0.021739509,0.009883412,-0.0073175905,-0.012715813,-0.017181009,-0.016607866,-0.042492677,-0.0014478565,-0.01794076,0.012302616,-0.015194997,-0.04433207,-0.020606548,0.009696807,0.010303274,-0.01694109,-0.004018677,0.019353628,-0.001991011,0.000058938927,0.010536531,-0.17274313,0.010143327,0.014235313,-0.024152048,0.025684876,-0.0012504216,0.036601283,-0.003698782,0.0007310093,0.004165295,-0.0029157067,0.017101036,-0.046891227,-0.017460918,0.022965772,0.020233337,-0.024072073,0.017220996,0.009370248,0.0010363255,0.0194336,-0.019606877,0.01818068,-0.020819811,0.007410893,0.0019326969,0.017887443,0.006651143,0.00067394477,-0.011889419,-0.025058415,-0.008543854,0.021579562,0.0047484366,0.014062037,0.0075508473,-0.009510202,-0.009143656,0.0046817916,0.013982063,-0.0027990784,0.011782787,0.014541878,-0.015701497,-0.029350337,0.021979429,0.01332228,-0.026244693,-0.0123492675,-0.003895384,0.0071576433,-0.035454992,-0.00046984528,0.0033522295,0.039347045,0.0005119148,0.00476843,-0.012995721,0.0024042083,-0.006931051,-0.014461905,-0.0127558,0.0034555288,-0.0074842023,-0.030256703,-0.007057676,-0.00807734,0.007804097,-0.006957709,0.017181009,-0.034575284,-0.008603834,-0.005008351,-0.015834786,0.02943031,0.016861115,-0.0050849924,0.014235313,0.0051449724,0.0025924798,-0.0025741523,0.04289254,-0.002104307,0.012969063,-0.008310596,0.00423194,0.0074975314,0.0018810473,-0.014248641,-0.024725191,0.0151016945,-0.017527562,0.0018727167,0.0002830318,0.015168339,0.0144219175,-0.004048667,-0.004358565,0.011836103,-0.010343261,-0.005911387,0.0022825818,0.0073175905,0.00403867,0.013188991,0.03334902,0.006111321,0.008597169,0.030123414,-0.015474904,0.0017877447,-0.024551915,0.013155668,0.023525586,-0.0255116,0.017220996,0.004358565,-0.00934359,0.0099967085,0.011162991,0.03092315,-0.021046404,-0.015514892,0.0011946067,-0.01816735,0.010876419,-0.10124666,-0.03550831,0.0056348112,0.013942076,0.005951374,0.020419942,-0.006857742,-0.020873128,-0.021259667,0.0137554705,0.0057880944,-0.029163731,-0.018767154,-0.021392956,0.030896494,-0.005494857,-0.0027307675,-0.006801094,-0.014821786,0.021392956,-0.0018110704,-0.0018843795,-0.012362596,-0.0072176233,-0.017194338,-0.018713837,-0.024272008,0.03801415,0.00015880188,0.0044951867,-0.028630573,-0.0014070367,-0.00916365,-0.026537929,-0.009576847,-0.013995391,-0.0077107945,0.0050016865,0.00578143,-0.04467862,0.008363913,0.010136662,-0.0006268769,-0.006591163,0.015341615,-0.027377652,-0.00093136,0.029243704,-0.020886457,-0.01041657,-0.02424535,0.005291591,-0.02980352,-0.009190307,0.019460259,-0.0041286405,0.004801752,0.0011787785,-0.001257086,-0.011216307,-0.013395589,0.00088137644,-0.0051616337,0.03876057,-0.0033455652,0.00075850025,-0.006951045,-0.0062112883,0.018140694,-0.006351242,-0.008263946,0.018154023,-0.012189319,0.0075508473,-0.044358727,-0.0040153447,0.0093302615,-0.010636497,0.032789204,-0.005264933,-0.014235313,-0.018393943,0.007297597,-0.016114693,0.015021721,0.020033404,0.0137688,0.0011046362,0.010616505,-0.0039453674,0.012109346,0.021099718,-0.0072842683,-0.019153694,-0.003768759,0.039320387,-0.006747778,-0.0016852784,0.018154023,0.0010963057,-0.015035049,-0.021033075,-0.04345236,0.017287642,0.016341286,-0.008610498,0.00236922,0.009290274,0.028950468,-0.014475234,-0.0035654926,0.015434918,-0.03372223,0.004501851,-0.012929076,-0.008483873,-0.0044685286,-0.0102233,0.01615468,0.0022792495,0.010876419,-0.0059647025,0.01895376,-0.0069976957,-0.0042952523,0.017207667,-0.00036133936,0.0085905045,0.008084005,0.03129636,-0.016994404,-0.014915089,0.020100048,-0.012009379,-0.006684466,0.01306903,0.00015765642,-0.00530492,0.0005277429,0.015421589,0.015528221,0.032202728,-0.003485519,-0.0014286962,0.033908837,0.001367883,0.010509873,0.025271678,-0.020993087,0.019846799,0.006897729,-0.010216636,-0.00725761,0.01818068,-0.028443968,-0.011242964,-0.014435247,-0.013688826,0.006101324,-0.0022509254,0.013848773,-0.0019077052,0.017181009,0.03422873,0.005324913,-0.0035188415,0.014128681,-0.004898387,0.005038341,0.0012320944,-0.005561502,-0.017847456,0.0008538855,-0.0047884234,0.011849431,0.015421589,-0.013942076,0.0029790192,-0.013702155,0.0001199605,-0.024431955,0.019926772,0.022179363,-0.016487904,-0.03964028,0.0050849924,0.017487574,0.022792496,0.0012504216,0.004048667,-0.00997005,0.0076041627,-0.014328616,-0.020259995,0.0005598157,-0.010469886,0.0016852784,0.01716768,-0.008990373,-0.001987679,0.026417969,0.023792166,0.0046917885,-0.0071909656,-0.00032051947,-0.023259008,-0.009170313,0.02071318,-0.03156294,-0.030869836,-0.006324584,0.013795458,-0.00047151142,0.016874444,0.00947688,0.00985009,-0.029883493,0.024205362,-0.013522214,-0.015075036,-0.030603256,0.029270362,0.010503208,0.021539574,0.01743426,-0.023898797,0.022019416,-0.0068777353,0.027857494,-0.021259667,0.0025758184,0.006197959,0.006447877,-0.00025200035,-0.004941706,-0.021246338,-0.005504854,-0.008390571,-0.0097301295,0.027244363,-0.04446536,0.05216949,0.010243294,-0.016008062,0.0122493,-0.0199401,0.009077012,0.019753495,0.006431216,-0.037960835,-0.027377652,0.016381273,-0.0038620618,0.022512587,-0.010996379,-0.0015211658,-0.0102233,0.007071005,0.008230623,-0.009490209,-0.010083347,0.024431955,0.002427534,0.02828402,0.0035721571,-0.022192692,-0.011882754,0.010056688,0.0011904413,-0.01426197,-0.017500903,-0.00010985966,0.005591492,-0.0077707744,-0.012049366,0.011869425,0.00858384,-0.024698535,-0.030283362,0.020140035,0.011949399,-0.013968734,0.042732596,-0.011649498,-0.011982721,-0.016967745,-0.0060913274,-0.007130985,-0.013109017,-0.009710136};
// Specifies that the vector search will consider the 150 nearest neighbors
// in the specified index
var options = new VectorSearchOptions<EmbeddedMovie>()
{
IndexName = "vector_index",
NumberOfCandidates = 150
};
// Builds aggregation pipeline and specifies that the $vectorSearch stage
// returns 10 results
var pipeline = new EmptyPipelineDefinition<EmbeddedMovie>()
.VectorSearch(m => m.Embedding, vector, 10, options)
.Project(Builders<EmbeddedMovie>.Projection
.Include(m => m.Title)
.Include(m => m.Plot));

이전 예시의 결과에는 다음 문서가 포함됩니다.

{ "_id" : ObjectId("573a13a0f29313caabd04a4f"), "plot" : "A reporter, learning of time travelers visiting 20th century disasters, tries to change the history they know by averting upcoming disasters.", "title" : "Thrill Seekers" }
{ "_id" : ObjectId("573a13d8f29313caabda6557"), "plot" : "At the age of 21, Tim discovers he can travel in time and change what happens and has happened in his own life. His decision to make his world a better place by getting a girlfriend turns out not to be as easy as you might think.", "title" : "About Time" }
{ "_id" : ObjectId("573a13a5f29313caabd13b4b"), "plot" : "Hoping to alter the events of the past, a 19th century inventor instead travels 800,000 years into the future, where he finds humankind divided into two warring races.", "title" : "The Time Machine" }
{ "_id" : ObjectId("573a13aef29313caabd2e2d7"), "plot" : "After using his mother's newly built time machine, Dolf gets stuck involuntary in the year 1212. He ends up in a children's crusade where he confronts his new friends with modern techniques...", "title" : "Crusade in Jeans" }
{ "_id" : ObjectId("573a1399f29313caabceec0e"), "plot" : "An officer for a security agency that regulates time travel, must fend for his life against a shady politician who has a tie to his past.", "title" : "Timecop" }
{ "_id" : ObjectId("573a1399f29313caabcee36f"), "plot" : "A time-travel experiment in which a robot probe is sent from the year 2073 to the year 1973 goes terribly wrong thrusting one of the project scientists, a man named Nicholas Sinclair into a...", "title" : "A.P.E.X." }
{ "_id" : ObjectId("573a13c6f29313caabd715d3"), "plot" : "Agent J travels in time to M.I.B.'s early days in 1969 to stop an alien from assassinating his friend Agent K and changing history.", "title" : "Men in Black 3" }
{ "_id" : ObjectId("573a13d4f29313caabd98c13"), "plot" : "Bound by a shared destiny, a teen bursting with scientific curiosity and a former boy-genius inventor embark on a mission to unearth the secrets of a place somewhere in time and space that exists in their collective memory.", "title" : "Tomorrowland" }
{ "_id" : ObjectId("573a13b6f29313caabd477fa"), "plot" : "With the help of his uncle, a man travels to the future to try and bring his girlfriend back to life.", "title" : "Love Story 2050" }
{ "_id" : ObjectId("573a13e5f29313caabdc40c9"), "plot" : "A dimension-traveling wizard gets stuck in the 21st century because cell-phone radiation interferes with his magic. With his home world on the brink of war, he seeks help from a jaded ...", "title" : "The Portal" }

Atlas Vector Search에 대해 자세히 알아보려면 Atlas 매뉴얼의 Atlas Vector Search 개요를 참조하세요.

다양한 연산을 위한 빌더를 사용하여 실행 가능한 예시를 찾아보려면 사용 예시를 확인해보세요.

이 가이드에서 설명하는 메서드나 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.

돌아가기

쿼리 결과 지정