View a markdown version of this page

$sampleRate - Amazon DocumentDB

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

$sampleRate

Novo na versão 8.0.1.

Não é suportado pelo cluster elástico.

O $sampleRate operador no Amazon DocumentDB combina uma amostra aleatória dos documentos de entrada com base na taxa especificada. Você pode usá-lo em um filtro de find() consulta ou em um $match estágio de agregação. Como a seleção é probabilística, o número de documentos devolvidos é aproximado e pode variar entre as execuções.

Parâmetros

  • value: um número no intervalo [0, 1] (inclusive), passado diretamente para o operador (por exemplo,{ $sampleRate: 0.3 }), que define a probabilidade de incluir cada documento. Um valor de 0 retorna nenhum documento; um valor de 1 retorna todos os documentos.

Exemplo (MongoDB Shell)

O exemplo a seguir é usado $sampleRate para devolver aproximadamente 30% dos documentos em uma coleção.

Crie documentos de amostra

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

Exemplo de consulta

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

Saída

A operação retorna um subconjunto aleatório dos documentos. Por ser $sampleRate probabilístico, os documentos específicos retornados e sua contagem variam sempre que a consulta é executada.

Exemplos de código

Para ver um exemplo de código para usar o $sampleRate comando, escolha a guia do idioma que você deseja usar:

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