개요
이 가이드 에서는 고 (Go) 운전자 사용하여 컬렉션 에서 Atlas Search 쿼리를 실행 방법을 학습 수 있습니다. Atlas Search 사용하면 MongoDB Atlas 에서 호스팅되는 컬렉션에서 전체 텍스트 검색을 수행할 수 있습니다. Atlas Search 인덱스는 검색 동작과 인덱스 할 필드를 지정합니다.
샘플 데이터
이 가이드의 예시에서는 Atlas 샘플 데이터 세트의 sample_mflix
데이터베이스에 있는 movies
컬렉션을 사용합니다. 무료 MongoDB Atlas 클러스터를 생성하고 샘플 데이터 세트를 로드하는 방법을 알아보려면 Atlas 시작하기 가이드를 참조하세요.
Atlas Search 쿼리 실행
이 섹션은 집계 파이프라인을 생성하여 컬렉션에서 Atlas Search 쿼리를 실행하는 방법을 설명합니다.
Atlas Search 쿼리 실행 하려면 컬렉션 에 Atlas Search 인덱스 만들어야 합니다. 프로그래밍 방식으로 Atlas Search 인덱스 만드는 방법을 학습하려면 인덱스 가이드의 golang-atlas-search-indexes 섹션을 참조하세요.
Atlas Search 인덱스 생성한 후 파이프라인 단계 배열 에 $search
단계를 추가하여 검색 기준을 지정합니다. 그런 다음 Aggregate()
메서드를 호출하고 파이프라인 배열 매개 변수로 전달합니다.
팁
집계 작업에 대해 자세히 알아보려면 집계 가이드를 참조하세요.
Atlas Search 예시
이 예시 다음 조치를 수행하여 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 설명서에서 $ 검색 파이프라인 단계 참조를 참조하세요.
API 문서
Aggregate()
메서드에 대한 자세한 내용은 API 문서