

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 DevPop
<a name="stdDevPop"></a>

Neu ab Version 8.0.1.

Der `$stdDevPop` Operator in Amazon DocumentDB berechnet die Populationsstandardabweichung numerischer Werte. Als Akkumulator berechnet er in der `$group` Phase einer Aggregationspipeline die Standardabweichung der Grundgesamtheiten für Dokumente innerhalb einer Gruppe. Als Ausdruck berechnet er die Standardabweichung der Grundgesamtheit einer Reihe von Zahlen. Bei der Standardabweichung der Grundgesamtheit wird N als Divisor verwendet (nicht N-1). Non-numeric Werte werden ignoriert. Wenn es keine numerischen Werte gibt, wird zurückgegeben`null`. Wenn es nur einen numerischen Wert gibt, wird er zurückgegeben`0`.

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

## Beispiel (MongoDB Shell)
<a name="stdDevPop-examples"></a>

Das folgende Beispiel zeigt, wie der `$stdDevPop` Operator verwendet wird, um die Populationsstandardabweichung der Punktzahlen pro Proband zu berechnen.

**Erstellen Sie Beispieldokumente **

```
db.scores.insertMany([
  { subject: "math", score: 60 },
  { subject: "math", score: 75 },
  { subject: "math", score: 85 },
  { subject: "math", score: 92 },
  { subject: "math", score: 78 },
  { subject: "science", score: 55 },
  { subject: "science", score: 70 },
  { subject: "science", score: 82 },
  { subject: "science", score: 91 },
  { subject: "science", score: 67 }
]);
```

**Beispiel für eine Abfrage **

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

**Ausgabe**

```
[
  { "_id": "math", "stdDev": 10.75174404457249 },
  { "_id": "science", "stdDev": 12.441864811996632 }
]
```

## Beispiel für die Verwendung von Ausdrücken (MongoDB Shell)
<a name="stdDevPop-expression-examples"></a>

Der `$stdDevPop` Operator kann auch als Ausdruck innerhalb einer `$project` Phase verwendet werden, um die Populationsstandardabweichung 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: { $stdDevPop: "$measurements" }
    }}
]);
```

**Ausgabe**

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

## Codebeispiele
<a name="stdDevPop-code"></a>

Um ein Codebeispiel für die Verwendung des `$stdDevPop` 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: stdDevPop across grouped documents
    const scores = db.collection('scores');
    const accumulatorResult = await scores.aggregate([
      { $group: {
          _id: "$subject",
          stdDev: { $stdDevPop: "$score" }
        }}
    ]).toArray();
    console.log('Accumulator result:', accumulatorResult);

    // Expression usage: stdDevPop of an array field
    const experiments = db.collection('experiments');
    const expressionResult = await experiments.aggregate([
      { $project: {
          stdDev: { $stdDevPop: "$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: stdDevPop across grouped documents
        scores = db['scores']
        accumulator_result = list(scores.aggregate([
            { '$group': {
                '_id': '$subject',
                'stdDev': { '$stdDevPop': '$score' }
            }}
        ]))
        print('Accumulator result:', accumulator_result)

        # Expression usage: stdDevPop of an array field
        experiments = db['experiments']
        expression_result = list(experiments.aggregate([
            { '$project': {
                'stdDev': { '$stdDevPop': '$measurements' }
            }}
        ]))
        print('Expression result:', expression_result)

    finally:
        client.close()

example()
```

------