Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Go 드라이버

Atlas Search 쿼리 실행

이 가이드 에서는 고 (Go) 운전자 사용하여 컬렉션 에서 Atlas Search 쿼리를 실행 방법을 학습 수 있습니다. Atlas Search 사용하면 MongoDB Atlas 에서 호스팅되는 컬렉션에서 전체 텍스트 검색을 수행할 수 있습니다. Atlas Search 인덱스는 검색 동작과 인덱스 할 필드를 지정합니다.

이 가이드의 예시에서는 Atlas 샘플 데이터 세트sample_mflix 데이터베이스에 있는 movies 컬렉션을 사용합니다. 무료 MongoDB Atlas 클러스터를 생성하고 샘플 데이터 세트를 로드하는 방법을 알아보려면 Atlas 시작하기 가이드를 참조하세요.

이 섹션은 집계 파이프라인을 생성하여 컬렉션에서 Atlas Search 쿼리를 실행하는 방법을 설명합니다.

Atlas Search 쿼리 실행 하려면 컬렉션 에 Atlas Search 인덱스 만들어야 합니다. 프로그래밍 방식으로 Atlas Search 인덱스 만드는 방법을 학습하려면 인덱스 가이드의 golang-atlas-search-indexes 섹션을 참조하세요.

Atlas Search 인덱스 생성한 후 파이프라인 단계 배열 에 $search 단계를 추가하여 검색 기준을 지정합니다. 그런 다음 Aggregate() 메서드를 호출하고 파이프라인 배열 매개 변수로 전달합니다.

집계 작업에 대해 자세히 알아보려면 집계 가이드를 참조하세요.

이 예시 다음 조치를 수행하여 Atlas Search 쿼리 실행합니다.

  • title 필드 에 "Alabama"라는 단어가 포함된 문서를 쿼리 하도록 운전자 에 지시하는 $search 단계를 생성합니다.

  • 드라이버가 쿼리 결과에 title 필드를 포함하도록 지시하는 $project 단계를 만듭니다.

  • 파이프라인 단계를 Aggregate() 메서드에 전달하고 결과를 출력합니다.

// Defines the pipeline
searchStage := bson.D{{"$search", bson.D{
{"text", bson.D{
{"path", "title"},
{"query", "Alabama"},
}},
}}}
projectStage := bson.D{{"$project", bson.D{{"title", 1}}}}
// Runs the pipeline
cursor, err := collection.Aggregate(ctx, mongo.Pipeline{searchStage, projectStage})
if err != nil {
panic(err)
}
// Prints the results
var results []bson.D
if err = cursor.All(ctx, &results); err != nil {
panic(err)
}
for _, result := range results {
fmt.Println(result)
}
{
_id: new ObjectId('...'),
title: 'Alabama Moon'
}
{
_id: new ObjectId('...'),
title: 'Crazy in Alabama'
}
{
_id: new ObjectId('...'),
title: 'Sweet Home Alabama'
}

Atlas Search 에 대해 자세히 학습 Atlas Search 가이드 및 Atlas 설명서에서 $ 검색 파이프라인 단계 참조를 참조하세요.

Aggregate() 메서드에 대한 자세한 내용은 API 문서

돌아가기

시계열

이 페이지의 내용