View a markdown version of this page

$sortArray - Amazon DocumentDB

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

$sortArray

버전 8.0의 새로운 기능

Elastic 클러스터에서는 지원되지 않습니다.

Amazon DocumentDB의 $sortArray 연산자는 배열의 요소를 정렬합니다. 스칼라 값 배열의 경우 배열은 요소 값을 기준으로 정렬됩니다. 문서 배열의 경우 배열은 지정된 필드 또는 필드를 기준으로 정렬됩니다. 연산자는 정렬된 배열을 오름차순(1) 또는 내림차순(-1)으로 반환합니다.

참고

$sortArray는 쿼리 플래너 버전 3을 사용하는 집계 파이프라인의 $project 단계에서 지원됩니다.

구문

{ $sortArray: { input: <array>, sortBy: <sort specification> } }

파라미터

  • input: 정렬할 배열입니다.

  • sortBy: 정렬 순서입니다. 스칼라 값 배열의 경우 오름차순1에를 지정하고 내림차순-1에를 지정합니다. 문서 배열의 경우 정렬할 각 필드에 { field: -1 } 양식 { field: 1 } 또는의 문서를 지정합니다.

예제(MongoDB 쉘)

다음 예제에서는 $sortArray 연산자를 사용하여 배열의 요소를 오름차순으로 정렬하는 방법을 보여줍니다.

샘플 문서 생성

db.miles.insertMany([ { "_id" : 1, "member_since" : ISODate("1987-01-01T00:00:00Z"), "credit_card" : false, "flight_miles" : [ 1205, 2560, 880 ]}, { "_id" : 2, "member_since" : ISODate("1982-01-01T00:00:00Z"), "credit_card" : true, "flight_miles" : [ 1205, 2560, 890, 2780]}, { "_id" : 3, "member_since" : ISODate("1999-01-01T00:00:00Z"), "credit_card" : true, "flight_miles" : [ 1205, 880]} ]);

쿼리 예제

db.miles.aggregate([ { $project: { _id: 1, member_since: 1, credit_card: 1, sorted_flight_miles: { $sortArray: { input: "$flight_miles", sortBy: 1 } } } } ]);

출력

{ "_id" : 1, "member_since" : ISODate("1987-01-01T00:00:00Z"), "credit_card" : false, "sorted_flight_miles" : [ 880, 1205, 2560 ] } { "_id" : 2, "member_since" : ISODate("1982-01-01T00:00:00Z"), "credit_card" : true, "sorted_flight_miles" : [ 890, 1205, 2560, 2780 ] } { "_id" : 3, "member_since" : ISODate("1999-01-01T00:00:00Z"), "credit_card" : true, "sorted_flight_miles" : [ 880, 1205 ] }

이 예제에서 $sortArray 연산자는 flight_miles 배열을 오름차순으로 정렬합니다. 출력의 결과 sorted_flight_miles 필드에는 배열의 요소가 정렬된 순서로 표시됩니다.

코드 예제

$sortArray 명령을 사용하기 위한 코드 예제를 보려면 사용하려는 언어의 탭을 선택합니다.

Node.js

다음은 Node.js 애플리케이션에서 $sortArray 연산자를 사용하는 예입니다.

const { MongoClient } = require('mongodb'); async function sortArray() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const collection = db.collection('miles'); const result = await collection.aggregate([ { $project: { _id: 1, member_since: 1, credit_card: 1, sorted_flight_miles: { $sortArray: { input: '$flight_miles', sortBy: 1 } } } } ]).toArray(); console.log(result); client.close(); } sortArray();
Python

다음은 Python 애플리케이션에서 $sortArray 연산자를 사용하는 예입니다.

from pymongo import MongoClient def sort_array(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client.test collection = db.miles result = list(collection.aggregate([ { '$project': { '_id': 1, 'member_since': 1, 'credit_card': 1, 'sorted_flight_miles': { '$sortArray': { 'input': '$flight_miles', 'sortBy': 1 } } } } ])) print(result) client.close() sort_array()