GraphQL 유형, 해석기 및 연산자
이 페이지의 내용
개요
Atlas App Services는 정의된 컬렉션이 있는 모든 컬렉션에 대해 GraphQL 스키마를 자동으로 생성합니다. 각 컬렉션에 대해 App Services는 다음을 생성합니다.
참고
collection 스키마 예시
이 페이지에는 movies
컬렉션에 대한 다음 스키마를 기준으로 생성된 값을 보여주는 예가 포함되어 있습니다.
{ "title": "Movie", "required": ["title"], "properties": { "_id": { "bsonType": "objectId" }, "title": { "bsonType": "string" }, "year": { "bsonType": "int" }, "rated": { "bsonType": "string" }, "runtime": { "bsonType": "int" }, "director": { "bsonType": "string" }, "reviews": { "bsonType": "array", "items": { "bsonType": "objectId" } }, "cast": { "bsonType": "array", "items": { "bsonType": "string" } } } }
스칼라 유형
App Services는 모든 표준 GraphQL 스칼라 유형을 지원하며 ObjectId
스칼라도 생성합니다.
지원되는 스칼라 유형은 다음과 같습니다.
ObjectId
: 문자열로 직렬화된 ObjectId(객체 ID) 값Boolean
:true
또는false
String
: UTF-8 문자 시퀀스Int
: 서명된 32비트 정수Long
: 서명된 64비트 정수Float
: 부호 있는 배정밀도 부동 소수점 값DateTime
: RFC 3339 UTC 날짜/시간 (예: "2020-09-01T15:38:14.918Z")
문서 유형
App Services는 컬렉션 스키마를 기준으로 컬렉션 내 문서에 대해 단일 GraphQL 유형 을 생성합니다. 이 유형은 스키마의 title
필드에서 설정된 이름을 사용하거나, title
이(가) 지정되지 않은 경우 컬렉션 이름을 사용합니다.
type Movie { _id: ObjectId title: String! year: Int rated: String runtime: Int director: String cast: [String] }
필드 매핑
App Services는 컬렉션 스키마의 필드를 GraphQL 형식의 필드에 직접 매핑하려고 시도합니다. GraphQL 사양에 설명된 유효한 이름의 정의는 가능한 모든 유효한 문서 필드 이름을 지원하지 않으므로 App Services에서는 다음 변환 규칙을 적용하여 생성된 GraphQL 유형에서 필드 이름을 결정합니다.
지원되지 않는 문자를 제거합니다
선행 숫자 제거
카멜 표기법으로 변환
이중 밑줄로 시작하는 필드는 생략하세요(예:
__myField
).
BSON Type 매핑
GraphQL 유형 시스템은 스키마에서 사용할 수 있는 BSON types와 유사하지만 동일하지는 않습니다. App Services는 스키마의 BSON types와 지원되는 GraphQL 유형 간의 매핑을 자동으로 시도합니다. 필드 유형에 해당하는 GraphQL이 없는 경우, App Services는 생성된 GraphQL 문서 유형에 해당 필드를 포함하지 않습니다.
다음 표에는 스키마에서 사용할 수 있는 BSON 유형과 매핑되는 GraphQL 유형이 나열되어 있습니다.
JSON/BSON 유형 | GraphQL 유형 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
참고
JSON은 "no value"를 나타내는 2가지 유형(undefined
, null
)을 지원합니다. GraphQL 사양은 null
을 지원하지만 undefined
는 지원하지 않습니다. 따라서 앱은 다음과 같은 방식으로 undefined
값을 변환합니다.
문서 필드가 명시적으로
undefined
(으)로 설정된 경우 해당하는 GraphQL 유형은 빈 객체(예:{}
)입니다.필드 이름이 문서에 대해 전혀 정의되어 있지 않거나 값이
null
(으)로 명시적으로 설정되어 있으면 해당 GraphQL 유형은null
입니다.
입력 유형
GraphQL은 입력 유형을 사용하여 쿼리 및 변형에 전달하는 매개변수를 나타냅니다. 이는 모호하지 않고 형식이 안전한 사용자 입력을 정의하기 위해 모든 GraphQL API에서 사용하는 표준 접근 방식입니다.
쿼리 입력
QueryInput
객체는 문서가 쿼리에 포함되기 위해 하나 이상의 조건 세트를 정의합니다. 객체에는 문서 유형의 필드와 App Services가 각 필드 유형에 따라 자동으로 생성하는 연산자 필드가 포함될 수 있습니다.
문서 필드:
QueryInput
필드의 이름이 문서 유형의 필드와 동일한 경우, 입력 필드에 지정된 값과 문서의 필드 값이 같으면 App Services와 문서가 일치합니다.예시
다음 쿼리에는
rated
및year
라는 두 개의 필드가 있는QueryInput
이 포함되어 있습니다. 이 두 필드 이름은 모두Movie
문서 유형에 정의되어 있으므로 App Services에서 두 필드 이름에 대해 동등성 매치를 수행합니다.이 쿼리는 2000년에 개봉한 모든 영화 중 R등급을 받은 영화의 제목을 반환합니다.
movies(query: { rated: "R", year: 2000 }) { title } 연산자 필드:
QueryInput
필드가 쿼리된 유형에 대해 유효한 연산자 필드인 경우 연산자가true
로 평가되면 App Services는 문서를 일치시킵니다.예시
다음 쿼리에는
rated_in
및year_gt
(이)라는 두 개의 필드가 있는QueryInput
이(가) 포함되어 있습니다. 두 필드는 모두 연산자 필드이므로 App Services는 각 연산자를 평가하여 문서가 일치하는지 확인합니다.이 쿼리는 2000년 이후에 출시된 영화 중 G등급 또는 PG-13등급을 받은 모든 영화의 제목을 반환합니다.
movies(query: { rated_in: ["G", "PG-13"], year_gt: 2000 }) { title }
비교 연산자 필드
비교 연산자 필드를 사용하면 정확한 동등성보다 복잡한 조건(예: 범위 쿼리)을 정의할 수 있습니다. App Services는 필드 유형을 기준으로 문서 유형의 모든 필드에 해당하는 일련의 비교 연산자 필드를 생성합니다. 각 비교 연산자는 대개 모든 필드 유형의 하위 세트에만 적용됩니다. 따라서 App Services는 유효한 조합에 해당하는 연산자 필드만 생성합니다.
비교 연산자 필드는 문서의 필드 값이 지정된 값에 대한 연산자 조건을 충족하는 경우 해당 문서에 대해 true
로 평가됩니다.
비교 연산자 필드의 형식은 다음과 같습니다.
<Field Name>_<Operator>: <Operator Value>
연산자 | 지원되는 필드 유형 | 연산자 값 유형 | 설명 | ||||
---|---|---|---|---|---|---|---|
gt | Int Float String ObjectId DateTime |
| 필드가 지정된 값보다 큰 문서를 찾습니다. 예시이 쿼리는 2000년도 이후에 개봉한 모든 영화를 검색합니다.
| ||||
gte | Int Float String ObjectId DateTime |
| 필드가 지정된 값보다 크거나 같은 문서를 찾습니다. 예시이 쿼리는 다음과 같이 2000년 또는 그 이후에 개봉된 모든 영화를 찾습니다.
| ||||
lt | Int Float String ObjectId DateTime |
| 필드가 지정된 값보다 작은 문서를 찾습니다. 예시이 쿼리는 2000년도 이전에 개봉한 모든 영화를 찾습니다.
| ||||
lte | Int Float String ObjectId DateTime |
| 필드가 지정된 값보다 작거나 같은 문서를 찾습니다. 예시이 쿼리는 다음과 같이 2000년 또는 그 이전에 개봉된 모든 영화를 찾습니다.
| ||||
ne | Int Float String Boolean ObjectId DateTime |
| 필드가 지정된 값과 같지 않은 문서를 찾습니다. 예시이 쿼리는 2000년을 제외한 모든 연도에 개봉한 영화를 찾습니다.
| ||||
인 | Int Float String Boolean ObjectId DateTime Array |
| 지정된 배열 내 임의의 값과 동일한 필드가 포함된 문서를 검색합니다. 필드가 예시이 쿼리는 엠마 스톤(Emma Stone)과 라이언 고슬링(Ryan Gosling) 중 한 명이 출연하거나 두 명 다 출연하는 영화를 전부 검색합니다.
| ||||
nin | Int Float String Boolean ObjectId DateTime Array |
| 필드가 지정된 배열의 어떤 값과도 같지 않은 문서를 찾습니다. 필드가 예시이 쿼리는 G 또는 PG-13 등급이 아닌 모든 영화를 찾습니다.
|
논리 연산자 필드
논리 연산자 필드를 사용하면 독립적인 QueryInput
객체의 논리 조합을 정의할 수 있습니다. App Services는 모든 QueryInput
유형에 대해 루트 수준의 논리 연산자 필드를 생성합니다.
지정된 모든 QueryInput
객체의 평가 결과가 연산자 조건을 충족하는 경우 논리 연산자 필드는 지정된 문서에 대해 true
로 평가됩니다.
로직 연산자 필드의 형식은 다음과 같습니다.
<Operator>: [<QueryInput>, ...]
연산자 | 연산자 값 유형 | 설명 | ||||||
---|---|---|---|---|---|---|---|---|
개인정보 정책에 |
| 제공된 모든 예시이 쿼리는 PG-13등급이고 상영 시간이 120분 미만인 모든 영화를 찾습니다
| ||||||
또는 |
| 제공된 예시이 쿼리는 G 또는 PG-13 등급의 모든 영화를 찾습니다.
|
요소 연산자 필드
요소 연산자 필드를 사용하면 문서의 필드를 설명하는 부울 조건을 정의할 수 있습니다. App Services는 문서 유형의 모든 필드에 대해 요소 연산자 세트를 생성합니다.
특정 문서의 필드에 대한 연산자 조건을 평가한 결과가 지정된 부울 값과 일치할 경우, 요소 연산자 필드는 해당 문서가 true
인 것으로 평가합니다.
요소 연산자 필드의 형식은 다음과 같습니다.
<Field Name>_<Operator>: <Operator Value>
연산자 | 지원되는 유형 | 연산자 값 유형 | 설명 | ||||||
---|---|---|---|---|---|---|---|---|---|
이 존재합니다 | 모든 유형에 사용 가능 | 부울 | 필드가 예시이 쿼리는
|
InsertInput
InsertInput
객체는 컬렉션에 삽입할 문서를 정의합니다. 문서는 GraphQL 문서 유형을 따라야 하며 필수 필드를 모두 포함해야 합니다.
예시
다음 변형에는 Movie
문서 유형에 전부 정의된 필드가 여러 개인 InsertInput
이(가) 포함되어 있습니다. Movie
유형의 모든 문서에는 title
필드가 있어야 합니다. 따라서 InsertInput
에는 해당 필드 1개가 포함되어야 합니다.
이 변형은 'My Fake Film(내 가짜 영화)'이라는 이름의 새 영화를 삽입합니다.
insertOneMovie(input: { title: "My Fake Film", rated: "UNRATED", year: 2020 }) { title }
UpdateInput
UpdateInput
객체는 문서에서 하나 이상의 필드에 대한 새 값을 정의합니다. 업데이트된 문서에는 새 필드 값이 포함되어 있습니다. 지정하지 않은 필드는 변경되지 않은 상태로 유지됩니다. 업데이트된 값은 GraphQL 문서 유형을 준수해야 합니다.
예시
다음 변형에는 title
필드를 "My Super Real Film"으로 설정한 UpdateInput
이 포함되어 있습니다.
updateOneMovie( query: { title: "My Fake Film" } set: { title: "My Super Real Film" } ) { title }
RelationInput
RelationInput
는 변경된 문서의 관계 필드에 대한 새로운 관련 문서 집합을 정의합니다. 관련 컬렉션에 이미 있는 문서를 link
필드로 참조하거나 create
필드를 사용하여 관련 컬렉션에 새 문서를 삽입할 수 있습니다.
link
와 create
를 동시에 사용할 수 없습니다. 둘 다 지정하면 create
작업이 우선되고 link
는 무시됩니다.
type RelationInput { link: [ObjectId] create: [InsertInput] }
예시
다음 변형에는 reviews
필드를 수정하는 UpdateInput
이 포함되어 있습니다. 필드에 정의된 관계가 있는 별도의 reviews
컬렉션에 있는 문서에 대한 _id
값 배열이 필드에 포함되어 있습니다.
변형은 새로 생성된 문서 하나와 reviews
collection에 있는 기존 문서 두 개를 가리키도록 관계를 설정합니다.
updateOneMovie( query: { title: "My Fake Film" } set: { reviews: { link: ["", ""] create: [] } } ) { title }
SortByInput
SortByInput
열거형은 쿼리에서 반환되는 문서의 정렬 순서를 정의합니다. object
또는 array
유형이 없는 루트 수준 필드를 기준으로 오름차순 및 내림차순으로 정렬할 수 있습니다. GraphQL API는 중첩 정렬을 지원하지 않습니다.
App Services는 각 필드에 대해 두 개의 정렬 열거형 값을 생성합니다. 각 값은 필드 이름과 정렬 방향(ASC
또는 DESC
)을 결합한 대문자로 된 식별자입니다.
예시
다음 쿼리는 개봉 연도별로 정렬된 영화를 반환하며 가장 최근 영화가 먼저 나열됩니다.
movies(sortBy: YEAR_DESC) { title }
쿼리 해석기
App Services는 컬렉션당 2개의 GraphQL 쿼리를 생성합니다.
컬렉션 내 특정 문서를 검색하는 단수형 쿼리입니다.
컬렉션 내 모든 문서를 검색하는 복수형 쿼리입니다.
QueryInput
와(과) 일치하는 컬렉션의 문서 하위 세트만 포함되도록 복수형 쿼리를 필터링할 수 있습니다.
단일 문서 찾기
단일 문서 쿼리 필드는 collection에 포함된 데이터 유형과 동일한 이름을 사용합니다. 쿼리된 유형의 단일 문서를 반환하고 다음 매개변수를 허용합니다.
Parameter | 유형 | 설명 |
---|---|---|
| 선택 사항입니다. 컬렉션의 문서에 대한 필터를 정의하는 객체입니다. 이 객체는 데이터 유형에서 필드를 한 개 이상 지정할 수 있으며 각 필드에 대한 값을 포함해야 합니다. 이 쿼리는 지정된 필드 값을 포함하는 모든 문서와 일치합니다.
|
query { movie(query: { title: "The Matrix" }) { title year runtime director } }
여러 문서 찾기
다중 문서 쿼리 필드는 컬렉션에 포함된 데이터 유형과 동일한 이름을 사용하지만 유형 이름에 "s"
가 붙습니다. 쿼리된 유형의 문서 배열을 반환하고 다음 매개변수를 허용합니다.
Parameter | GraphQL 유형 | 설명 |
---|---|---|
| 선택 사항입니다. 컬렉션의 문서에 대한 필터를 정의하는 객체입니다. 이 객체는 데이터 유형에서 필드를 한 개 이상 지정할 수 있으며 각 필드에 대한 값을 포함해야 합니다. 이 쿼리는 지정된 필드 값을 포함하는 모든 문서와 일치합니다.
| |
| Int | 선택 사항입니다. 기본값은 |
| 선택 사항입니다. 쿼리 결과 세트에 포함된 문서의 정렬 순서를 정의하는 값입니다.
만약 |
query { movies( query: { year: 2000 } limit: 100 sortBy: TITLE_ASC ) { title year runtime director } }
변형 해석기
App Services는 각 collection의 문서에 대한 변형 세트를 생성합니다. 이를 통해 하나 이상의 문서를 삽입, 수정 및 삭제할 수 있습니다.
단일 문서 삽입
이 단일 문서 삽입 변형 필드는 insertOne<Type>
(이)라는 이름을 사용합니다. 여기서 <Type>
은(는) 컬렉션에 포함된 데이터 유형의 단수형 이름입니다. 이 필드는 삽입된 문서를 반환하고 다음 매개변수를 허용합니다.
Parameter | 유형 | 설명 |
---|---|---|
| 필수 사항입니다. 컬렉션에 삽입할 문서입니다. 컬렉션 스키마가 필드를 필수로 표시하는 경우 이 문서에는 해당 필드에 대한 유효한 값이 포함되어야 합니다. App Services는 |
mutation { insertOneMovie(data: { title: "Little Women" director: "Greta Gerwig" year: 2019 runtime: 135 }) { _id title } }
여러 문서를 삽입합니다.
다중 문서 삽입 변형 필드는 insertMany<Type>s
이라는 이름을 사용하며, 여기서 <Type>
은 컬렉션에 포함된 데이터 유형의 단수형 이름입니다. 이 필드는 삽입된 문서를 반환하고 다음 매개 변수를 허용합니다.
Parameter | 유형 | 설명 |
---|---|---|
| [InsertInput!]! | 필수. collection에 삽입할 문서의 배열입니다. 배열에는 문서가 하나 이상 포함되어야 합니다. collection 스키마가 필드를 필수로 표시하는 경우 각 문서에는 해당 필드에 대한 유효한 값이 포함되어야 합니다. App Services는 |
mutation { insertManyMovies(data: [ { title: "Little Women" director: "Greta Gerwig" year: 2019 runtime: 135 }, { title: "1917" director: "Sam Mendes" year: 2019 runtime: 119 } ]) { _id title } }
단일 문서 업데이트
단일 문서 업데이트 변형 필드는 updateOne<Type>
(이)라는 이름을 사용합니다. 여기서 <Type>
은(는) collection에 포함된 데이터 유형의 단수형 이름입니다. 업데이트된 문서를 반환하고 다음 매개 변수를 허용합니다.
Parameter | 유형 | 설명 |
---|---|---|
| 선택 사항입니다. 컬렉션에서 어떤 문서를 업데이트할지 설정하는 객체입니다. 이 객체는 데이터 유형에서 필드를 한 개 이상 지정할 수 있으며 각 필드에 대한 값을 포함해야 합니다. 이 쿼리는 지정된 필드 값을 포함하는 모든 문서와 일치합니다.
| |
| UpdateInput! | 필수 사항 문서에 있는 하나 이상의 필드에 대한 새 값을 정의하는 객체입니다. 업데이트된 문서에는 새로운 필드 값이 포함됩니다. 지정되지 않은 모든 필드는 변경 없이 그대로 유지됩니다. App Services는 |
mutation { updateOneMovie( query: { title: "The Room" } set: { runtime: 99 } ) { _id title } }
여러 문서 업데이트하기
이 복수 문서 업데이트 변형 필드는 updateMany<Type>s
이라는 이름을 사용합니다. 여기서 <Type>
은 컬렉션에 포함된 데이터 유형의 단수형 이름입니다. 일치하고 수정된 필드 수를 설명하는 UpdateManyPayload
문서를 반환하고 다음 매개변수를 허용합니다.
Parameter | 유형 | 설명 |
---|---|---|
| 선택 사항입니다. 컬렉션에서 어떤 문서를 업데이트할지 설정하는 객체입니다. 이 객체는 데이터 유형에서 필드를 한 개 이상 지정할 수 있으며 각 필드에 대한 값을 포함해야 합니다. 이 쿼리는 지정된 필드 값을 포함하는 모든 문서와 일치합니다.
| |
| 필수 사항 문서에 있는 하나 이상의 필드에 대한 새 값을 정의하는 객체입니다. 업데이트된 문서에는 새로운 필드 값이 포함됩니다. 지정되지 않은 모든 필드는 변경 없이 그대로 유지됩니다. App Services는 |
mutation { updateManyMovies( query: { director: "Tommy Wiseau" } set: { director: "Tom Wiseau" } ) { matchedCount modifiedCount } }
단일 문서 업로드
이 단일 문서 업서트 변형 필드는 upsertOne<Type>
(이)라는 이름을 사용합니다. 여기서 <Type>
은(는) 컬렉션에 포함된 데이터 유형의 단수형 이름입니다. 이 해석기는 해당 쿼리 매개변수와 일치하는 문서를 업데이트하고, 쿼리와 일치하는 문서가 없는 경우 새 문서를 삽입합니다. 아울러 업서트된 문서를 반환하고 다음 매개변수를 허용합니다.
Parameter | 유형 | 설명 |
---|---|---|
| 선택 사항. 업데이트할 문서를 구성하는 객체입니다. 객체는 데이터 유형에서 하나 이상의 필드를 지정할 수 있으며 각 필드에 대한 값을 포함해야 합니다. 쿼리는 지정된 필드 값을 포함하는 모든 문서와 일치합니다.
| |
| 필수 사항입니다. |
mutation { upsertOneMovie( query: { title: "Blacksmith Scene" } data: { title: "Sandcastles in the Sand", director: "Robin Scherbatsky" runtime: 90 year: 2002 } ) { _id title } }
단일 문서 교체하기
이 단일 문서 대체 변형 필드는 replaceOne<Type>
(이)라는 이름을 사용합니다. 여기서 <Type>
은(는) 컬렉션에 포함된 데이터 유형의 단수형 이름입니다. 이 필드는 대체된 문서를 반환하고 다음 매개변수를 허용합니다.
Parameter | 유형 | 설명 |
---|---|---|
| 선택 사항. 컬렉션에서 교체할 문서를 구성하는 객체입니다. 이 객체는 데이터 유형에서 필드를 한 개 이상 지정할 수 있으며 각 필드에 대한 값을 포함해야 합니다. 이 쿼리는 지정된 필드 값을 포함하는 모든 문서와 일치합니다.
| |
| 필수 사항 쿼리된 문서를 대체하는 문서입니다. 컬렉션 스키마가 필드를 필수로 표시하는 경우 이 문서에는 해당 필드에 대한 유효한 값이 포함되어야 합니다. App Services는 |
mutation { replaceOneMovie( query: { title: "Blacksmith Scene" } data: { title: "Sandcastles in the Sand", director: "Robin Scherbatsky" runtime: 90 year: 2002 } ) { _id title } }
단일 문서 삭제
이 단일 문서 삭제 변형 필드는 deleteOne<Type>
(이)라는 이름을 사용합니다. 여기서 <Type>
은(는) 컬렉션에 포함된 데이터 유형의 단수형 이름입니다. 이 필드는 삭제된 문서를 반환하고 다음 매개변수를 허용합니다.
Parameter | 유형 | 설명 |
---|---|---|
| 필수 사항입니다. 컬렉션에서 어떤 문서를 삭제할지 설정하는 객체입니다. 이 객체는 데이터 유형에서 필드를 한 개 이상 지정할 수 있으며 각 필드에 대한 값을 포함해야 합니다. 이 쿼리는 지정된 필드 값을 포함하는 모든 문서와 일치합니다.
|
mutation { deleteOneMovie(query: { title: "The Room" }) { _id title year runtime director } }
여러 문서 삭제
이 복수 문서 삭제 변형 필드는 deleteMany<Type>s
(이)라는 이름을 사용합니다. 여기서 <Type>
은(는) 컬렉션에 포함된 데이터 유형의 단수형 이름입니다. 이 필드는 삭제된 문서의 수를 설명하고 다음 매개변수를 허용하는 DeleteManyPayload
문서를 반환합니다.
Parameter | 유형 | 설명 |
---|---|---|
| 선택 사항. collection에서 삭제할 문서를 구성하는 객체입니다. 객체는 데이터 유형에서 하나 이상의 필드를 지정할 수 있으며 각 필드에 대한 값을 포함해야 합니다. 쿼리는 지정된 필드 값을 포함하는 모든 문서와 일치합니다. 만약 |
mutation { deleteManyMovies(query: { director: "Tommy Wiseau" }) { deletedCount } }
Paginate Data
GraphQL API의 생성된 스키마에서 제공하는 유형을 사용하여 쿼리의 데이터에 페이지를 매길 수 있습니다.
Atlas GraphQL API에는 offset
GraphQL 문서에서 페이지 매김에 권장하는 것과 같은 연산자가 없습니다.
대신 query
, limit
, 및 sortBy
연산자와 함께 생성된 스키마의 여러 문서 찾기 쿼리 해결기를 사용하여 데이터 페이지 매김을 수행할 수 있습니다.
데이터를 오름차순으로 페이지 매김하는 방법은 다음과 같습니다.
query PaginateAscending( # Do not include `previousTitle` for the first query # in a pagination sequence. $previousTitle: String, $limit: Int!, ) { movies( query: { title_gt: $previousTitle } limit: $limit sortBy: TITLE_ASC ) { title year runtime director } }
데이터를 내림차순으로 페이지 매김하는 방법은 다음과 같습니다.
query PaginateAscending( # Do not include `nextTitle` for the first query # in a pagination sequence. $nextTitle: String, $limit: Int!, ) { movies( query: { title_lt: $nextTitle } limit: $limit sortBy: TITLE_DESC ) { title year runtime director } }
클라이언트 애플리케이션에서 구현된 이 페이지 매김 패턴의 예시는 Realm 웹 SDK 설명서의 Paginate Data(데이터 페이지 매기기)를 참조하세요.
참고
이 페이지 매김 방식은 MongoDB MongoDB Server 설명서에 설명된 MongoDB 드라이버의 범위 쿼리와 유사합니다.