View a markdown version of this page

$ sortieren ByCount - 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.

$ sortieren ByCount

Neu ab Version 8.0.1.

Die $sortByCount Aggregationsphase in Amazon DocumentDB gruppiert eingehende Dokumente anhand des Werts eines angegebenen Ausdrucks, berechnet dann die Anzahl der Dokumente in jeder einzelnen Gruppe und sortiert die Ergebnisse nach Anzahl in absteigender Reihenfolge. Dies entspricht einer $group Stufe mit einem $sum Akkumulator, auf den eine $sort Stufe im Zählfeld folgt.

Parameter

  • expression: Der Ausdruck, nach dem gruppiert werden soll. Dies kann ein Feldpfad (mit Präfix$) oder ein beliebiger gültiger Aggregationsausdruck sein.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie die $sortByCount Bühne verwendet wird, um Dokumente nach einem Kategoriefeld zu zählen und zu sortieren.

Erstellen Sie Beispieldokumente

db.products.insertMany([ { name: "Widget", category: "electronics" }, { name: "Gadget", category: "electronics" }, { name: "Doohickey", category: "electronics" }, { name: "Apple", category: "food" }, { name: "Banana", category: "food" }, { name: "Hammer", category: "tools" } ]);

Beispiel für eine Abfrage

db.products.aggregate([ { $sortByCount: "$category" } ]);

Ausgabe

[ { "_id": "electronics", "count": 3 }, { "_id": "food", "count": 2 }, { "_id": "tools", "count": 1 } ]

Die Ergebnisse werden automatisch count in absteigender Reihenfolge sortiert.

Codebeispiele

Um ein Codebeispiel für die Verwendung der $sortByCount Stufe anzuzeigen, wählen Sie den Tab für die Sprache, die Sie verwenden möchten:

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = new MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); try { await client.connect(); const db = client.db('test'); const collection = db.collection('products'); const result = await collection.aggregate([ { $sortByCount: "$category" } ]).toArray(); console.log(result); } finally { await client.close(); } } example();
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') try: db = client['test'] collection = db['products'] result = list(collection.aggregate([ { '$sortByCount': '$category' } ])) print(result) finally: client.close() example()