Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

$min

$min

참고

v3.2부터 지원이 중단되었습니다

v3.2 $min 부터 연산자 에서 더 이상 사용되지 mongosh 않습니다. 에서는 을cursor.min() mongosh 대신 사용합니다.

값을 지정하여 결과를 제한하기 $min 위해 특정 인덱스 에 대한 find() 포괄적 하한을 지정합니다. $min 은(는) 특정 인덱스 의 모든 키에 대한 하한 을 순서대로 지정합니다.

mongoshmin() 래퍼 메서드를 제공합니다.

db.collection.find( { <query> } ).min( { field1: <min value>, ... fieldN: <min valueN>} )

다음 두 형식 중 하나를 사용하여 옵션을 지정할 수도 있습니다.

db.collection.find( { <query> } )._addSpecial( "$min", { field1: <min value1>, ... fieldN: <min valueN> } )
db.collection.find( { $query: { <query> }, $min: { field1: <min value1>, ... fieldN: <min valueN> } } )

참고

인덱스 사용하기

MongoDB 부터는 4.2 / min() 을(를)hint()실행 하려면 메서드를 사용하여 $min 특정 인덱스 를 명시적으로 지정해야 합니다.find() 단, 쿼리 가 동등 조건인 _id 경우 힌트를 줄 필요가 { _id: <value> } 없습니다. 필드 에 .

min() 에는 필드에 대한 인덱스가 필요하고 쿼리가 이 인덱스를 사용하도록 강제하므로 가능하면 쿼리에 $gte 연산자를 선호할 수 있습니다. 다음 예시를 살펴보겠습니다.

db.collection.find( { _id: { $in: [ 6, 7 ] } } ).min( { age: 25 } ).hint( { age: 1 } )

이 쿼리는 _id 의 인덱스가 더 나을 수 있더라도 age 필드의 인덱스를 사용합니다.

$max$min 와 함께 사용하여 범위 를 지정하는 경우,

  • $min$max에 지정된 인덱스 바운드는 모두 동일한 인덱스의 키를 참조해야 합니다.

  • $max 로 지정된 경계는 $min 로 지정된 경계보다 커야 합니다.

    버전 4.0에서 변경됨.

$min$max 연산자는 시스템에서 일반적인 쿼리 계획을 피해야 함을 나타냅니다. 대신 $min$max에 지정된 값으로 인덱스 바운드 가 명시적으로 지정되는 인덱스 스캔을 구성합니다.

경고

두 경계 중 하나를 지정하지 않으면 쿼리 계획은 한 쪽이 제한되지 않은 인덱스 스캔이 됩니다. 이렇게 하면 연산자를 모두 포함하지 않는 쿼리 또는 두 연산자를 모두 사용하여 인덱스 스캔을 보다 엄격하게 제한하는 쿼리에 비해 성능이 저하될 수 있습니다.

다음 예제에서는 mongosh 래퍼를 사용합니다.

인덱스 { age: 1 } 가 있는 collection 컬렉션에 대해 다음 작업을 고려합니다.

db.collection.find().min( { age: 20 } ).hint( { age: 1 } )

이 작업은 age 필드 가 20 이상인 문서로 쿼리 를 제한하고 { age: 1 } 인덱스 를 20 에서 MaxKey로 스캔하는 쿼리 계획 을 강제합니다.

다음 예시 와 같이 $min$max 와 함께 사용하여 동일한 인덱스 에 대한 특정 범위 로 결과를 제한할 수 있습니다.

참고

MongoDB 4.0 부터 $max 로 지정된 경계는 $min 로 지정된 경계보다 커야 합니다.

db.collection.find().min( { age: 20 } ).max( { age: 25 } ).hint( { age: 1 } )

돌아가기

$maxTimeMS

이 페이지의 내용