View a markdown version of this page

$Frequenza di campionamento - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

$Frequenza di campionamento

Nuovo dalla versione 8.0.1.

Non supportato da Elastic Cluster.

L'$sampleRateoperatore in Amazon DocumentDB corrisponde a un campione casuale dei documenti di input in base alla frequenza specificata. Puoi utilizzarlo in un filtro di find() interrogazione o in una fase di aggregazione. $match Poiché la selezione è probabilistica, il numero di documenti restituiti è approssimativo e può variare tra le esecuzioni.

Parametri

  • value: un numero compreso nell'intervallo [0, 1] (incluso), passato direttamente all'operatore (ad esempio{ $sampleRate: 0.3 }), che imposta la probabilità di includere ogni documento. Un valore di non 0 restituisce alcun documento; un valore di 1 restituisce tutti i documenti.

Esempio (MongoDB Shell)

L'esempio seguente viene utilizzato $sampleRate per restituire circa il 30 percento dei documenti in una raccolta.

Crea documenti di esempio

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

Esempio di interrogazione

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

Output

L'operazione restituisce un sottoinsieme casuale dei documenti. Poiché $sampleRate è probabilistico, i documenti specifici restituiti e il loro numero variano ogni volta che viene eseguita la query.

Esempi di codice

Per visualizzare un esempio di codice per l'utilizzo del $sampleRate comando, scegliete la scheda corrispondente alla lingua che desiderate utilizzare:

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