AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

쿼리 지정

이 가이드 에서는 스칼라 운전자 사용하여 쿼리 지정하는 방법을 학습 수 있습니다.

쿼리 필터하다 만들어 쿼리 반환하는 문서 설정하다 를 구체화할 수 있습니다. 쿼리 필터하다 는 MongoDB 읽기 또는 쓰기 (write) 작업에서 문서를 일치시키는 데 사용하는 검색 기준을 지정하는 표현식 입니다.

쿼리 연산자를 사용하여 쿼리 필터하다 에서 더 복잡한 일치 기준을 Express 수 있습니다. 스칼라 운전자 에는 쿼리 연산자를 적용하기 위한 헬퍼 메서드를 제공하는 Filters 클래스가 포함되어 있습니다.

팁

Filters 헬퍼 메서드의 전체 목록을 보려면 필터 API 설명서를 참조하세요.

이 가이드 의 예제에서는 과일을 나타내는 문서가 포함된 fruits 컬렉션 에서 작업을 실행 합니다. 다음 코드 예시 에서는 데이터베이스 와 컬렉션 을 만든 다음 컬렉션 에 샘플 문서를 삽입하는 방법을 보여 줍니다.

val uri: String = "<connection string>"
val client: MongoClient = MongoClient(uri)
val database: MongoDatabase = client.getDatabase("db")
val collection: MongoCollection[Document] = database.getCollection("fruits")
// Inserts documents representing fruits
val fruits: Seq[Document] = Seq(
Document("_id" -> 1, "name" -> "apples", "qty" -> 5, "rating" -> 3, "color" -> "red", "type" -> Seq("fuji", "honeycrisp")),
Document("_id" -> 2, "name" -> "bananas", "qty" -> 7, "rating" -> 4, "color" -> "yellow", "type" -> Seq("cavendish")),
Document("_id" -> 3, "name" -> "oranges", "qty" -> 6, "rating" -> 2, "type" -> Seq("naval", "mandarin")),
Document("_id" -> 4, "name" -> "pineapples", "qty" -> 3, "rating" -> 5, "color" -> "yellow")
)
val result = collection.insertMany(fruits)
.subscribe((result: InsertManyResult) => println(result))

리터럴 값 쿼리는 쿼리 필터하다 와 정확히 일치하는 문서를 반환합니다.

다음 예시 에서는 쿼리 필터하다 를 find() 메서드에 대한 매개 변수로 지정합니다. 이 코드는 color 필드 값이 "yellow" 인 모든 문서를 반환합니다.

val filter = equal("color", "yellow")
collection.find(filter).subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))

참고

모든 문서 찾기

컬렉션 의 모든 문서를 찾으려면 매개변수를 전달하지 않고 find() 메서드를 호출합니다.

collection.find()

비교 연산자는 쿼리 필터하다 에 지정된 값을 기준으로 문서 필드 값을 평가합니다. 다음 목록은 일반적인 비교 연산자와 해당 연산자에 해당하는 Filters 도우미 메서드를 정의합니다.

쿼리 작업자
헬퍼 메서드
설명

$gt

gt()

지정된 필드의 값이 지정된 값보다 큰 문서를 일치시킵니다.

$lte

lte()

지정된 필드의 값이 지정된 값보다 작거나 같은 문서와 일치합니다.

$ne

ne()

지정된 필드의 값이 지정된 값과 다른 문서와 일치합니다.

팁

비교 연산자의 전체 목록을 보려면 MongoDB Server 매뉴얼의 비교 쿼리 연산자 가이드를 참조하세요.

다음 예시 쿼리 필터하다 find() 메서드에 전달하고 gt() 메서드를 사용하여 $gt 비교 연산자 적용 . 이 코드는 rating 필드 값이 2보다 큰 모든 문서를 반환합니다.

val filter = gt("rating", 2)
collection.find(filter).subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))

논리 연산자는 두 개 이상의 표현식 집합의 결과에 적용된 논리를 사용하여 문서를 일치시킵니다. 다음 표에서는 각 논리 연산자 와 해당 Filters 도우미 메서드에 대해 설명합니다.

쿼리 작업자
헬퍼 메서드
설명

$and

and()

모든 절의 조건을 충족하는 문서와 일치합니다.

$or

or()

한 절의 조건을 충족하는 문서와 일치합니다.

$nor

nor()

어떤 절의 조건과 일치하지 않는 문서와 일치합니다.

$not

not()

표현식과 일치하지 않는 문서와 일치합니다.

팁

논리 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼의 논리 쿼리 연산자 가이드를 참조하세요.

다음 예시 쿼리 필터하다 find() 메서드에 전달하고 or() 메서드를 사용하여 $or 논리 연산자 적용 . 이 코드는 qty 필드 값이 보다 크거나 5 color 필드 값이 인 모든 문서를 반환합니다."yellow"

val filter = or(gt("qty", 5), equal("color", "yellow"))
collection.find(filter).subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))

배열 연산자는 배열 필드 에 있는 요소의 값 또는 수량을 기준으로 문서를 일치시킵니다. 다음 표에서는 각 배열 연산자 와 해당 Filters 도우미 메서드에 대해 설명합니다.

쿼리 작업자
헬퍼 메서드
설명

$all

all()

쿼리에 있는 모든 요소가 포함된 배열이 있는 문서를 일치시킵니다.

$elemMatch

elemMatch()

배열 필드의 요소가 쿼리의 모든 조건을 충족하는 경우 문서와 일치합니다.

$size

size()

지정된 크기의 배열을 가진 문서를 일치시킵니다.

팁

배열 연산자에 대해 자세히 알아보려면 매뉴얼의 배열 쿼리 연산자 가이드를 MongoDB Server 참조하세요.

다음 예시 쿼리 필터하다 find() 메서드에 전달하고 size() 메서드를 사용하여 $size 배열 연산자 적용 . 이 코드는 type 배열 필드 에 2 요소가 포함된 모든 문서를 반환합니다.

val filter = size("type", 2)
collection.find(filter).subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))

요소 연산자는 필드 의 존재 여부 또는 유형에 따라 데이터를 쿼리 . 다음 표에서는 각 요소 연산자 와 해당 Filters 도우미 메서드에 대해 설명합니다.

쿼리 작업자
헬퍼 메서드
설명

$exists

exists()

지정된 필드가 있는 문서와 일치시킵닙니다.

$type

type()

필드에 지정된 유형이 있는 경우 문서를 일치시킵니다.

팁

요소 연산자에 대해 자세히 알아보려면 매뉴얼의 요소 쿼리 연산자 가이드를 MongoDB Server 참조하세요.

다음 예시 쿼리 필터하다 find() 메서드에 전달하고 exists() 메서드를 사용하여 $exists 요소 연산자 적용 . 이 코드는 color 필드 있는 모든 문서를 반환합니다.

val filter = exists("color")
collection.find(filter).subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))

평가 연산자는 개별 필드 또는 전체 컬렉션 문서의 평가를 기반으로 데이터를 반환합니다. 다음 표에서는 일반적인 요소 연산자와 해당 Filters 도우미 메서드에 대해 설명합니다.

쿼리 작업자
헬퍼 메서드
설명

$text

text()

문서에서 텍스트 검색을 수행합니다.

$regex

regex()

값이 지정된 정규 표현식과 일치하는 문서를 일치시킵니다.

$mod

mod()

필드 값에 대해 모듈로 연산을 수행하고 지정된 결과가 있는 문서를 일치시킵니다.

팁

평가 연산자의 전체 목록을 보려면 MongoDB Server 매뉴얼의 평가 쿼리 연산자 가이드를 참조하세요.

다음 예시 쿼리 필터하다 find() 메서드에 전달하고 regex() 메서드를 사용하여 $regex 평가 연산자 적용 . 이 코드는 정규 표현식 사용하여 name 필드 값에 연속된 'p' 문자가 두 개 이상 있는 모든 문서를 반환합니다.

val filter = regex("name", "p{2,}")
collection.find(filter).subscribe((doc: Document) => println(doc.toJson()),
(e: Throwable) => println(s"There was an error: $e"))

문서 쿼리에 대해 자세히 알아보려면 MongoDB Server 매뉴얼의 문서 쿼리 가이드를 참조하세요.

스칼라 운전자 사용하여 문서를 검색하는 방법에 대해 자세히 학습 데이터 검색 가이드 참조하세요.

이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 설명서를 참조하세요.