View a markdown version of this page

$ std DevSamp - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$ std DevSamp

Neu ab Version 8.0.1.

Der $stdDevSamp Operator in Amazon DocumentDB berechnet die Standardabweichung der Stichprobe numerischer Werte. Als Akkumulator berechnet er die Standardabweichung der Stichprobe für Dokumente innerhalb einer Gruppe in der $group Phase einer Aggregationspipeline. Als Ausdruck berechnet er die Standardabweichung der Stichprobe einer Reihe von Zahlen. N-1 Als Divisor wird die Standardabweichung der Stichprobe verwendet (Bessel-Korrektur). Non-numeric Werte werden ignoriert. Wenn es weniger als zwei numerische Werte gibt, wird zurückgegebennull.

Parameter

  • expression: Ein Ausdruck, der in einen numerischen Wert oder ein Array numerischer Werte aufgelöst wird.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $stdDevSamp Operator verwendet wird, um die Stichprobenstandardabweichung der Ergebnisse pro Proband zu berechnen.

Erstellen Sie Beispieldokumente

db.scores.insertMany([ { subject: "math", score: 80 }, { subject: "math", score: 90 }, { subject: "math", score: 85 }, { subject: "math", score: 95 }, { subject: "science", score: 70 }, { subject: "science", score: 75 }, { subject: "science", score: 80 }, { subject: "science", score: 85 } ]);

Beispiel für eine Abfrage

db.scores.aggregate([ { $group: { _id: "$subject", stdDev: { $stdDevSamp: "$score" } }} ]);

Ausgabe

[ { "_id": "math", "stdDev": 6.454972243679028 }, { "_id": "science", "stdDev": 6.454972243679028 } ]

Beispiel für die Verwendung von Ausdrücken (MongoDB Shell)

Der $stdDevSamp Operator kann auch als Ausdruck innerhalb einer $project Stufe verwendet werden, um die Standardabweichung der Stichprobe eines Array-Feldes zu berechnen.

Erstellen Sie Beispieldokumente

db.experiments.insertMany([ { _id: 1, measurements: [10, 12, 14, 16, 18] }, { _id: 2, measurements: [5, 5, 5, 5, 5] }, { _id: 3, measurements: [2, 4, 6, 8, 10] } ]);

Beispiel für eine Abfrage

db.experiments.aggregate([ { $project: { stdDev: { $stdDevSamp: "$measurements" } }} ]);

Ausgabe

[ { "_id": 1, "stdDev": 3.1622776601683795 }, { "_id": 2, "stdDev": 0 }, { "_id": 3, "stdDev": 3.1622776601683795 } ]

Codebeispiele

Um ein Codebeispiel für die Verwendung des $stdDevSamp Operators anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten. Die folgenden Beispiele zeigen sowohl die Verwendung von Akkumulatoren (in$group) als auch die Verwendung von Ausdrücken (in$project):

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'); // Accumulator usage: stdDevSamp across grouped documents const scores = db.collection('scores'); const accumulatorResult = await scores.aggregate([ { $group: { _id: "$subject", stdDev: { $stdDevSamp: "$score" } }} ]).toArray(); console.log('Accumulator result:', accumulatorResult); // Expression usage: stdDevSamp of an array field const experiments = db.collection('experiments'); const expressionResult = await experiments.aggregate([ { $project: { stdDev: { $stdDevSamp: "$measurements" } }} ]).toArray(); console.log('Expression result:', expressionResult); } 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'] # Accumulator usage: stdDevSamp across grouped documents scores = db['scores'] accumulator_result = list(scores.aggregate([ { '$group': { '_id': '$subject', 'stdDev': { '$stdDevSamp': '$score' } }} ])) print('Accumulator result:', accumulator_result) # Expression usage: stdDevSamp of an array field experiments = db['experiments'] expression_result = list(experiments.aggregate([ { '$project': { 'stdDev': { '$stdDevSamp': '$measurements' } }} ])) print('Expression result:', expression_result) finally: client.close() example()