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