View a markdown version of this page

$ trier ByCount - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

$ trier ByCount

Nouveau depuis la version 8.0.1.

L'étape d'$sortByCountagrégation d'Amazon DocumentDB regroupe les documents entrants en fonction de la valeur d'une expression spécifiée, puis calcule le nombre de documents dans chaque groupe distinct et trie les résultats par nombre dans l'ordre décroissant. Cela équivaut à un $group étage avec un $sum accumulateur suivi d'un $sort étage sur le champ de comptage.

Paramètres

  • expression: expression à utiliser pour le regroupement. Il peut s'agir d'un chemin de champ (préfixé par$) ou de toute expression d'agrégation valide.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser la $sortByCount scène pour compter et trier les documents en fonction d'un champ de catégorie.

Créez des exemples de documents

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

Exemple de requête

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

Sortie

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

Les résultats sont automatiquement triés par count ordre décroissant.

Exemples de code

Pour afficher un exemple de code permettant d'utiliser la $sortByCount scène, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

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