Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der $round-Operator wird verwendet, um eine Zahl auf eine angegebene Dezimalstelle zu runden. Er ist nützlich bei Aggregationen, bei denen numerische Genauigkeit wichtig ist, z. B. Finanzberechnungen oder statistische Analysen.
Syntax
{
$round: [ <number>, <place> ]
}
Die Parameter
| Parameter | Description |
|---|---|
<number> |
Die Zahl, die gerundet werden soll. |
<place> |
Die Dezimalstelle, auf die die Zahl gerundet werden soll. |
Examples
Betrachten Sie dieses Beispieldokument aus der Stores-Sammlung.
{
"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
"name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
"location": {
"lat": -89.2384,
"lon": -46.4012
},
"staff": {
"totalStaff": {
"fullTime": 8,
"partTime": 20
}
},
"sales": {
"totalSales": 75670,
"salesByCategory": [
{
"categoryName": "Wine Accessories",
"totalSales": 34440
},
{
"categoryName": "Bitters",
"totalSales": 39496
},
{
"categoryName": "Rum",
"totalSales": 1734
}
]
},
"promotionEvents": [
{
"eventName": "Unbeatable Bargain Bash",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 6,
"Day": 23
},
"endDate": {
"Year": 2024,
"Month": 7,
"Day": 2
}
},
"discounts": [
{
"categoryName": "Whiskey",
"discountPercentage": 7
},
{
"categoryName": "Bitters",
"discountPercentage": 15
},
{
"categoryName": "Brandy",
"discountPercentage": 8
},
{
"categoryName": "Sports Drinks",
"discountPercentage": 22
},
{
"categoryName": "Vodka",
"discountPercentage": 19
}
]
},
{
"eventName": "Steal of a Deal Days",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 9,
"Day": 21
},
"endDate": {
"Year": 2024,
"Month": 9,
"Day": 29
}
},
"discounts": [
{
"categoryName": "Organic Wine",
"discountPercentage": 19
},
{
"categoryName": "White Wine",
"discountPercentage": 20
},
{
"categoryName": "Sparkling Wine",
"discountPercentage": 19
},
{
"categoryName": "Whiskey",
"discountPercentage": 17
},
{
"categoryName": "Vodka",
"discountPercentage": 23
}
]
}
]
}
Beispiel 1 : Runden der Standortkoordinaten von Stores
Um den Breiten- und Längengrad aller Geschäfte innerhalb des Unternehmens "First Up Consultants" zu runden, führen Sie zunächst eine Abfrage aus, um nach dem Namen des Unternehmens zu filtern. Verwenden Sie dann den $round-Operator in den Feldern lat und lon, um das gewünschte Ergebnis zurückzugeben.
db.stores.aggregate([{
$match: {
company: {
$in: ["First Up Consultants"]
}
}
}, {
$project: {
company: 1,
"location.lat": 1,
"location.lon": 1,
roundedLat: {
$round: ["$location.lat", 1]
},
roundedLon: {
$round: ["$location.lon", 1]
}
}
}])
Die ersten drei Ergebnisse, die von dieser Abfrage zurückgegeben werden, sind:
[
{
"_id": "39acb3aa-f350-41cb-9279-9e34c004415a",
"location": {
"lat": 87.2239,
"lon": -129.0506
},
"company": "First Up Consultants",
"roundedLat": 87.2,
"roundedLon": -129.1
},
{
"_id": "26afb024-53c7-4e94-988c-5eede72277d5",
"location": {
"lat": -29.1866,
"lon": -112.7858
},
"company": "First Up Consultants",
"roundedLat": -29.2,
"roundedLon": -112.8
},
{
"_id": "62438f5f-0c56-4a21-8c6c-6bfa479494ad",
"location": {
"lat": -0.2136,
"lon": 108.7466
},
"company": "First Up Consultants",
"roundedLat": -0.2,
"roundedLon": 108.7
}
]
Beispiel 2: Runden auf die nächsten Tausend
Um das Gesamtumsatzvolumen von Geschäften innerhalb des Unternehmens "First Up Consultants" zu runden, führen Sie zunächst eine Abfrage aus, um Filialen nach dem Firmennamen zu filtern. Verwenden Sie dann den $round-Operator für das Feld „totalSales“, um den Wert auf die nächsten Tausend zu runden.
db.stores.aggregate([{
$match: {
company: {
$in: ["First Up Consultants"]
}
}
}, {
$project: {
company: 1,
"sales.totalSales": 1,
roundedSales: {
$round: ["$sales.totalSales", -3]
}
}
}])
Die ersten drei Ergebnisse, die von dieser Abfrage zurückgegeben werden, sind:
[
{
"_id": "39acb3aa-f350-41cb-9279-9e34c004415a",
"sales": {},
"company": "First Up Consultants",
"roundedSales": 279000
},
{
"_id": "26afb024-53c7-4e94-988c-5eede72277d5",
"sales": {},
"company": "First Up Consultants",
"roundedSales": 50000
},
{
"_id": "62438f5f-0c56-4a21-8c6c-6bfa479494ad",
"sales": {},
"company": "First Up Consultants",
"roundedSales": 69000
}
]