

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.

# $ Runde
<a name="round"></a>

Neu ab Version 8.0.1.

Der `$round` Operator in Amazon DocumentDB rundet eine Zahl auf eine angegebene Dezimalstelle. Wenn ein Wert genau in der Mitte zwischen den beiden nächstgelegenen Werten an dieser Stelle liegt, wird auf die nächste gerade Stelle `$round` gerundet. Beispiel: 2,5 Runden auf 2 und 3,5 Runden auf 4.

**Parameter**
+ `number`: Ein Ausdruck, der in eine Zahl aufgelöst wird.
+ `place`: Optional. Ein Ganzzahlausdruck zwischen -20 und 100, der die Anzahl der Dezimalstellen angibt, auf die gerundet werden soll. Ein negativer Wert wird auf die linke Seite der Dezimalstelle gerundet. Der Standardwert ist 0.

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

Das folgende Beispiel zeigt, wie der `$round` Operator verwendet wird, um numerische Werte auf eine Dezimalstelle zu runden.

**Rundung mit einem positiven Stellenwert **

```
db.measurements.insertMany([
  {_id: 1, value: 3.456},
  {_id: 2, value: 7.891},
  {_id: 3, value: 12.345}
]);
```

**Beispiel für eine Abfrage **

```
db.measurements.aggregate([
  { $project: { rounded: { $round: ["$value", 1] } } }
]);
```

**Ausgabe**

```
[
  {_id: 1, rounded: 3.5},
  {_id: 2, rounded: 7.9},
  {_id: 3, rounded: 12.3}
]
```

**Auf halber Strecke liegende Werte auf die nächste gerade Ziffer runden **

Wenn ein Wert genau in der Mitte zwischen den beiden nächstgelegenen Werten an der Zielstelle liegt, wird auf die nächste gerade Ziffer gerundet, anstatt immer `$round` aufzurunden. Im folgenden Beispiel werden Werte auf halber Strecke auf ganze ganze Zahlen gerundet.

```
db.halfway.insertMany([
  {_id: 1, value: 10.5},
  {_id: 2, value: 11.5},
  {_id: 3, value: 12.5},
  {_id: 4, value: 13.5}
]);
```

```
db.halfway.aggregate([
  { $project: { rounded: { $round: ["$value", 0] } } }
]);
```

**Ausgabe**

```
[
  {_id: 1, rounded: 10},
  {_id: 2, rounded: 12},
  {_id: 3, rounded: 12},
  {_id: 4, rounded: 14}
]
```

Weil genau in der Mitte zwischen `10` und `10.5` liegt`11`, wird auf den nächsten geraden Wert gerundet. `10` Ähnlich, `11.5` und `12.5` beide werden auf den nächsten geraden Wert `12` `13.5` gerundet und auf `14` gerundet.

**Rundung mit einem negativen Stellenwert **

Wenn negativ `place` ist, wird auf die linke Seite der Dezimalstelle `$round` gerundet. Im folgenden Beispiel werden Werte mit der ersten Ziffer links von der Dezimalstelle gerundet.

```
db.samples.insertMany([
  {_id: 1, value: 19.25},
  {_id: 2, value: 28.73},
  {_id: 3, value: 34.32}
]);
```

```
db.samples.aggregate([
  { $project: { rounded: { $round: ["$value", -1] } } }
]);
```

**Ausgabe**

```
[
  {_id: 1, rounded: 20},
  {_id: 2, rounded: 30},
  {_id: 3, rounded: 30}
]
```

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

Um ein Codebeispiel für die Verwendung des `$round` Operators anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function example() {
  const client = new MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  try {
    await client.connect();
    const db = client.db('test');
    const collection = db.collection('measurements');
    const result = await collection.aggregate([
      { $project: { rounded: { $round: ["$value", 1] } } }
    ]).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['measurements']
        result = list(collection.aggregate([
            {'$project': {'rounded': {'$round': ['$value', 1]}}}
        ]))
        print(result)
    finally:
        client.close()

example()
```

------