$sample - 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á.

$sample

O estágio $sample de agregação no Amazon DocumentDB é usado para selecionar aleatoriamente um número específico de documentos de uma coleção. Isso é útil para tarefas como análise de dados, testes e geração de amostras para processamento posterior.

Parâmetros

  • size: o número de documentos a serem selecionados aleatoriamente.

Exemplo (MongoDB Shell)

O exemplo a seguir demonstra como usar o $sample palco para selecionar aleatoriamente dois documentos da temp coleção.

Crie documentos de amostra

db.temp.insertMany([ { "_id": 1, "temperature": 97.1, "humidity": 0.60, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 2, "temperature": 98.2, "humidity": 0.59, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 3, "temperature": 96.8, "humidity": 0.61, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 4, "temperature": 97.9, "humidity": 0.61, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 5, "temperature": 97.5, "humidity": 0.60, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 6, "temperature": 98.0, "humidity": 0.59, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 7, "temperature": 97.2, "humidity": 0.60, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 8, "temperature": 98.1, "humidity": 0.59, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 9, "temperature": 96.9, "humidity": 0.62, "timestamp": ISODate("2019-03-21T21:17:22.425Z") }, { "_id": 10, "temperature": 97.7, "humidity": 0.60, "timestamp": ISODate("2019-03-21T21:17:22.425Z") } ]);

Exemplo de consulta

db.temp.aggregate([ { $sample: { size: 2 } } ])

Saída

{ "_id" : 4, "temperature" : 97.9, "humidity" : 0.61, "timestamp" : ISODate("2019-03-21T21:17:22.425Z") } { "_id" : 9, "temperature" : 96.9, "humidity" : 0.62, "timestamp" : ISODate("2019-03-21T21:17:22.425Z") }

Como mostram os resultados, 2 dos 10 documentos foram amostrados aleatoriamente. Agora você pode usar esses documentos para determinar uma média ou realizar min/max cálculos.

Exemplos de código

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

Node.js
const { MongoClient } = require('mongodb'); async function sampleDocuments() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const collection = db.collection('temp'); const result = await collection.aggregate([ { $sample: { size: 2 } } ]).toArray(); console.log(result); await client.close(); } sampleDocuments();
Python
from pymongo import MongoClient def sample_documents(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] collection = db['temp'] result = list(collection.aggregate([ { '$sample': { 'size': 2 } } ])) print(result) client.close() sample_documents()