

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
<a name="sortByCount"></a>

Nouveau depuis la version 8.0.1.

L'étape d'`$sortByCount`agré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)
<a name="sortByCount-examples"></a>

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
<a name="sortByCount-code"></a>

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

------