View a markdown version of this page

$ Runde - 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.

$ Runde

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)

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 liegt11, 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

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