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

orderby

$orderby

참고

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

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

$orderby 연산자 는 쿼리 결과를 오름차순 또는 내림차순으로 정렬합니다.

mongoshcursor.sort() 메서드를 제공합니다.

db.collection.find().sort( { age: -1 } )

다음 형식 중 하나로 옵션을 지정할 수도 있습니다.

db.collection.find()._addSpecial( "$orderby", { age : -1 } )
db.collection.find( { $query: {}, $orderby: { age : -1 } } )

이 예제에서는 이름이 collection 인 컬렉션 의 모든 문서를 age 필드 를 기준으로 내림차순으로 정렬하여 반환합니다. 음수인 $orderby 의 값을 지정합니다(예: -1, 내림차순 또는 양수 값(예: 1)를 사용하여 오름차순으로 정렬합니다.

인덱스에는 정렬된 레코드가 포함되어 있으므로 MongoDB 는 정렬 필드가 포함된 인덱스 에서 정렬 결과를 얻을 수 있습니다. 정렬에서 쿼리 술어와 동일한 인덱스를 사용하는 경우 MongoDB 여러 인덱스를 사용하여 정렬 작업을 지원 수 있습니다.

MongoDB가 인덱스 또는 인덱스를 사용하여 정렬을 순서대로 가져올 수 없는 경우, MongoDB는 데이터에 대해 블로킹 정렬 작업을 수행해야 합니다. 차단 정렬은 MongoDB가 정렬에 대한 모든 입력 문서를 소비하고 처리해야 함을 나타냅니다. 차단 정렬은 컬렉션이나 데이터베이스에서 동시 작업을 차단하지 않습니다.

인덱스를 사용하는 정렬 작업은 차단 정렬보다 성능이 더 좋은 경우가 많습니다. 정렬 작업을 지원하는 인덱스를 만드는 방법에 대한 자세한 내용은 인덱스를 사용하여 쿼리 결과 정렬을 참조하세요.

차단 정렬 작업에 100메가바이트 이상의 시스템 메모리를 사용해야 하는 경우 쿼리에서 cursor.allowDiskUse()(MongoDB 4.4에 새로 추가됨)를 지정하지 않으면 MongoDB는 오류를 반환합니다. allowDiskUse()는 MongoDB가 차단 정렬 작업을 처리하는 동안 디스크의 임시 파일을 사용하여 100메가바이트 시스템 메모리 제한을 초과하는 데이터를 저장할 수 있도록 허용합니다.

이 오류를 방지하려면 정렬 작업을 지원 하는 인덱스 를 생성하거나 $orderbycursor.maxTimeMS() 및/또는 cursor.limit() 와 함께 사용합니다. cursor.limit() 는 최적화된 알고리즘 을 통해 속도를 높이고 이 쿼리 를 반환하는 데 필요한 메모리 양을 줄입니다. 지정된 제한으로 인해 문서 수가 100 메가바이트 제한 내에 속해야 합니다.

돌아가기

$min

이 페이지의 내용