AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
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"))
{"_id": 2, "name": "bananas", "qty": 7, "rating": 4, "color": "yellow", "type": ["cavendish"]}
{"_id": 4, "name": "pineapples", "qty": 3, "rating": 5, "color": "yellow"}

참고

모든 문서 찾기

컬렉션 의 모든 문서를 찾으려면 매개변수를 전달하지 않고 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"))
{"_id": 1, "name": "apples", "qty": 5, "rating": 3, "color": "red", "type": ["fuji", "honeycrisp"]}
{"_id": 2, "name": "bananas", "qty": 7, "rating": 4, "color": "yellow", "type": ["cavendish"]}
{"_id": 4, "name": "pineapples", "qty": 3, "rating": 5, "color": "yellow"}

논리 연산자는 두 개 이상의 표현식 집합의 결과에 적용된 논리를 사용하여 문서를 일치시킵니다. 다음 표에서는 각 논리 연산자 와 해당 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"))
{"_id": 2, "name": "bananas", "qty": 7, "rating": 4, "color": "yellow", "type": ["cavendish"]}
{"_id": 3, "name": "oranges", "qty": 6, "rating": 2, "type": ["naval", "mandarin"]}
{"_id": 4, "name": "pineapples", "qty": 3, "rating": 5, "color": "yellow"}

배열 연산자는 배열 필드 에 있는 요소의 값 또는 수량을 기준으로 문서를 일치시킵니다. 다음 표에서는 각 배열 연산자 와 해당 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"))
{"_id": 1, "name": "apples", "qty": 5, "rating": 3, "color": "red", "type": ["fuji", "honeycrisp"]}
{"_id": 3, "name": "oranges", "qty": 6, "rating": 2, "type": ["naval", "mandarin"]}

요소 연산자는 필드 의 존재 여부 또는 유형에 따라 데이터를 쿼리 . 다음 표에서는 각 요소 연산자 와 해당 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"))
{"_id": 1, "name": "apples", "qty": 5, "rating": 3, "color": "red", "type": ["fuji", "honeycrisp"]}
{"_id": 2, "name": "bananas", "qty": 7, "rating": 4, "color": "yellow", "type": ["cavendish"]}
{"_id": 4, "name": "pineapples", "qty": 3, "rating": 5, "color": "yellow"}

평가 연산자는 개별 필드 또는 전체 컬렉션 문서의 평가를 기반으로 데이터를 반환합니다. 다음 표에서는 일반적인 요소 연산자와 해당 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"))
{"_id": 1, "name": "apples", "qty": 5, "rating": 3, "color": "red", "type": ["fuji", "honeycrisp"]}
{"_id": 4, "name": "pineapples", "qty": 3, "rating": 5, "color": "yellow"}

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

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

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