MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home
/ /

MongoDB 검색 쿼리 실행

이 가이드 에서는 MongoDB Search 인덱스 를 쿼리 하고 Ruby 운전자 애플리케이션에서 고급 전체 텍스트 검색 기능을 사용하는 방법을 학습 수 있습니다. $search 집계 파이프라인 단계 단계를 사용하여 검색 인덱스 쿼리할 수 있습니다.

$search 파이프라인 단계에 대해 자세히 알아보려면 MongoDB Server 매뉴얼의 $search 가이드를 참조하세요.

참고

Atlas 및 Community Edition 버전 요구 사항

$search 집계 파이프라인 연산자는 MongoDB v4.2 이상을 실행하는 MongoDB Atlas 클러스터 또는 MongoDB v8.2 이상을 실행하는 MongoDB Community Edition 클러스터에서 호스팅되는 컬렉션에만 사용할 수 있습니다. 컬렉션은 MongoDB 검색 인덱스에 포함되어야 합니다. 이 연산자 의 필수 설정 및 기능에 대해 자세히 학습하려면 MongoDB 검색 설명서를 참조하세요.

이 가이드 의 예제에서는 Atlas 샘플 데이터 세트sample_mflix.movies 컬렉션 사용합니다. 무료 MongoDB Atlas cluster 생성하고 샘플 데이터 세트를 로드하는 방법을 학습하려면 Ruby 드라이버 시작하기를 참조하세요.

Atlas 컬렉션에서 검색을 수행하려면 먼저 컬렉션에 MongoDB Search 인덱스를 만들어야 합니다. MongoDB Search 인덱스는 데이터를 검색 가능한 형식으로 분류하는 데이터 구조입니다. MongoDB Search 인덱스를 만드는 방법은 MongoDB Search 및 MongoDB 벡터 검색 인덱스 가이드를 참조하세요.

$search 집계 파이프라인 단계를 사용하려면 실행 쿼리 유형을 나타내는 MongoDB Search 쿼리 연산자 지정해야 합니다. 선택적으로 수집기를 사용하여 쿼리 출력의 값과 범위를 지정할 수 있습니다. MongoDB Search에서 사용할 수 있는 모든 연산자 및 수집기의 표를 보려면 Atlas 설명서의 연산자 및 수집기 페이지를 참조하세요.

다음 예시 compound 연산자 사용하여 여러 연산자를 단일 쿼리 로 결합합니다. 자세히 학습 Atlas 문서에서 복합 연산자 가이드 참조하세요.

쿼리에 다음 검색 기준이 있습니다.

  • genres 필드에 Comedy가 포함되어서는 안 됩니다.

  • title 필드에 문자열New York이 포함되어야 합니다.

쿼리에는 다음 단계도 포함됩니다.

  • $limit, 출력을 10개의 결과로 제한합니다.

  • title을(를) 제외한 모든 필드를 제외하고 score라는 필드를 추가하려면 $project을(를) 사용합니다.

pipeline = [
{
"$search" => {
"index" => "index_name",
"compound" => {
"mustNot" => [
{
"text" => {
"query" => ["Comedy"],
"path" => "genres"
}
}
],
"must" => [
{
"text" => {
"query" => ["New York"],
"path" => "title"
}
}
]
}
}
},
{ "$limit" => 10 },
{
"$project" => {
"_id" => 0,
"title" => 1,
"score" => { "$meta" => "searchScore" }
}
}
]
result = collection.aggregate(pipeline)
puts result.to_a
{'title': 'New York, New York', 'score': 6.786379814147949}
{'title': 'New York', 'score': 6.258603096008301}
{'title': 'New York Doll', 'score': 5.381444931030273}
{'title': 'Escape from New York', 'score': 4.719935417175293}
{'title': 'Autumn in New York', 'score': 4.719935417175293}
{'title': 'Sleepless in New York', 'score': 4.719935417175293}
{'title': 'Gangs of New York', 'score': 4.719935417175293}
{'title': 'Sherlock Holmes in New York', 'score': 4.203253746032715}
{'title': 'New York: A Documentary Film', 'score': 4.203253746032715}
{'title': 'An Englishman in New York', 'score': 4.203253746032715}

사용 가능한 MongoDB Search 연산자에 대해 자세히 학습하려면 MongoDB Atlas 문서에서 연산자 및 수집기 가이드를 참조하세요.

MongoDB Search에 대한 자세한 내용과 더 많은 쿼리 예제를 보려면 MongoDB Search 설명서를 참조하세요.

Atlas에 저장된 데이터에서 벡터 검색을 수행하려면 Atlas Vector Search를 사용해야 합니다. Atlas Vector Search에 대해 자세히 알아보려면 Atlas Vector Search 문서를 참조하세요.

돌아가기

지리 공간

이 페이지의 내용