View a markdown version of this page

$sortArray - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$sortArray

Neu ab Version 8.0

Wird von Elastic Cluster nicht unterstützt.

Der $sortArray Operator in Amazon DocumentDB sortiert die Elemente eines Arrays. Bei Arrays mit Skalarwerten wird das Array nach Elementwerten sortiert. Bei Dokumentenarrays wird das Array nach dem oder den angegebenen Feldern sortiert. Der Operator gibt das sortierte Array in aufsteigender (1) oder absteigender (-1) Reihenfolge zurück.

Anmerkung

$sortArraywird in der $project Phase der Aggregationspipeline mit Query Planner Version 3 unterstützt.

Syntax

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

Parameter

  • input: Das zu sortierende Array.

  • sortBy: Die Sortierreihenfolge. Geben Sie für eine Reihe von Skalarwerten die Werte 1 für aufsteigend oder -1 absteigend an. Geben Sie für eine Reihe von Dokumenten ein Dokument des Formulars { field: 1 } oder { field: -1 } für jedes Feld an, nach dem sortiert werden soll.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $sortArray Operator verwendet wird, um die Elemente eines Arrays in aufsteigender Reihenfolge zu sortieren.

Erstellen Sie Beispieldokumente

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

Beispiel für eine Abfrage

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

Ausgabe

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

In diesem Beispiel sortiert der $sortArray Operator das flight_miles Array in aufsteigender Reihenfolge. Das resultierende sorted_flight_miles Feld in der Ausgabe zeigt die Elemente des Arrays in sortierter Reihenfolge.

Codebeispiele

Um ein Codebeispiel für die Verwendung des $sortArray Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

Node.js

Hier ist ein Beispiel für die Verwendung des $sortArray Operators in einer Node.js Anwendung:

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

Hier ist ein Beispiel für die Verwendung des $sortArray Operators in einer Python-Anwendung:

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