View a markdown version of this page

Taux d'échantillonnage $ - 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.

Taux d'échantillonnage $

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)

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

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