View a markdown version of this page

$SortArray - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

$SortArray

Nuevo desde la versión 8.0

No es compatible con el clúster de Elastic.

El $sortArray operador de Amazon DocumentDB ordena los elementos de una matriz. En el caso de las matrices de valores escalares, la matriz se ordena por el valor del elemento. En el caso de las matrices de documentos, la matriz se ordena por el campo o los campos especificados. El operador devuelve la matriz ordenada en orden ascendente (1) o descendente (-1).

nota

$sortArrayse admite en la $project fase del proceso de agregación con la versión 3 del planificador de consultas.

Sintaxis

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

Parámetros

  • input: La matriz que se va a ordenar.

  • sortBy: El orden de clasificación. Para una matriz de valores escalares, especifique 1 si son ascendentes o -1 descendentes. Para una matriz de documentos, especifique un documento del formulario { field: 1 } o { field: -1 } para cada campo por el que desee ordenar.

Ejemplo (MongoDB Shell)

El siguiente ejemplo muestra cómo utilizar el $sortArray operador para ordenar los elementos de una matriz en orden ascendente.

Cree documentos de muestra

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]} ]);

Ejemplo de consulta

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

Salida

{ "_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 ] }

En este ejemplo, el $sortArray operador ordena la flight_miles matriz en orden ascendente. El sorted_flight_miles campo resultante de la salida muestra los elementos de la matriz ordenados.

Ejemplos de código

Para ver un ejemplo de código para usar el $sortArray comando, elija la pestaña correspondiente al idioma que desee usar:

Node.js

A continuación, se muestra un ejemplo del uso $sortArray del operador en una Node.js aplicación:

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

Este es un ejemplo del uso del $sortArray operador en una aplicación de Python:

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()