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