View a markdown version of this page

$sampleRate - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

$sampleRate

Nuevo desde la versión 8.0.1.

Elastic Cluster no lo admite.

El $sampleRate operador de Amazon DocumentDB compara una muestra aleatoria de los documentos de entrada en función de la tasa especificada. Puede usarlo en un filtro de find() consultas o en una $match etapa de agregación. Como la selección es probabilística, la cantidad de documentos devueltos es aproximada y puede variar de una tirada a otra.

Parámetros

  • value: un número del rango [0, 1] (incluido), que se pasa directamente al operador (por ejemplo,{ $sampleRate: 0.3 }), que establece la probabilidad de incluir cada documento. El valor de no 0 devuelve ningún documento; el valor de 1 devuelve todos los documentos.

Ejemplo (MongoDB Shell)

El siguiente ejemplo se utiliza $sampleRate para devolver aproximadamente el 30 por ciento de los documentos de una colección.

Cree documentos de muestra

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

Ejemplo de consulta

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

Salida

La operación devuelve un subconjunto aleatorio de los documentos. Como $sampleRate es probabilístico, los documentos específicos devueltos y su recuento varían cada vez que se ejecuta la consulta.

Ejemplos de código

Para ver un ejemplo de código sobre el uso del $sampleRate comando, elija la pestaña correspondiente al idioma que desee utilizar:

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