

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.

# Taux d'échantillonnage $
<a name="sampleRate"></a>

Nouveau depuis la version 8.0.1.

Non pris en charge par Elastic Cluster.

Dans Amazon DocumentDB, `$sampleRate` l'opérateur correspond à un échantillon aléatoire des documents d'entrée en fonction du taux spécifié. Vous pouvez l'utiliser dans un filtre de `find()` requête ou dans une `$match` étape d'agrégation. La sélection étant probabiliste, le nombre de documents renvoyés est approximatif et peut varier d'un tirage à l'autre.

**Paramètres**
+ `value`: un nombre compris dans la plage `[0, 1]` (inclus), transmis directement à l'opérateur (par exemple,`{ $sampleRate: 0.3 }`), qui définit la probabilité d'inclure chaque document. La valeur `0` renvoie aucun document ; la valeur `1` renvoie tous les documents.

## Exemple (MongoDB Shell)
<a name="sampleRate-examples"></a>

L'exemple suivant permet `$sampleRate` de renvoyer environ 30 % des documents d'une collection.

**Créez des exemples de documents **

```
db.events.insertMany([
  { _id: 1, type: "click" },
  { _id: 2, type: "view" },
  { _id: 3, type: "click" },
  { _id: 4, type: "view" },
  { _id: 5, type: "purchase" }
]);
```

**Exemple de requête **

```
db.events.aggregate([
  { $match: { $sampleRate: 0.3 } }
]);
```

**Sortie**

L'opération renvoie un sous-ensemble aléatoire de documents. Parce que `$sampleRate` c'est probabiliste, les documents spécifiques renvoyés et leur nombre varient à chaque exécution de la requête.

## Exemples de code
<a name="sampleRate-code"></a>

Pour afficher un exemple de code d'utilisation de la `$sampleRate` commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function example() {
  const uri = 'mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false';
  const client = new MongoClient(uri);

  try {
    await client.connect();
    const db = client.db('test');
    const collection = db.collection('events');

    // Return approximately 30% of the documents
    const result = await collection.aggregate([
      { $match: { $sampleRate: 0.3 } }
    ]).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['events']

        # Return approximately 30% of the documents
        result = list(collection.aggregate([
            { '$match': { '$sampleRate': 0.3 } }
        ]))

        print(result)
    finally:
        client.close()

example()
```

------