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 operator $convert konvertiert einen Ausdruck in einen Wert des angegebenen Typs.
Syntax
{
$convert: {
input: < expression > ,
to: < type > ,
format: < binData format > ,
onError: < value to return on error > ,
onNull: < value to return on null >
}
}
Die Parameter
| Parameter | Description |
|---|---|
input |
Der Eingabewert, der in den angegebenen Typ konvertiert werden soll |
to |
Der Typ, in den der Eingabewert konvertiert werden soll |
format |
(Optional) Das binData-Format der Eingabe oder Ausgabe beim Konvertieren eines Werts in oder aus binData |
onError |
(Optional) Der Wert, der zurückgegeben werden soll, wenn die Konvertierung der Eingabe in den angegebenen Typ fehlschlägt. |
onNull |
(Optional) Der Wert, der zurückgegeben werden soll, wenn der Eingabewert, der in den angegebenen Typ konvertiert werden soll, null ist oder fehlt |
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: Konvertieren eines Int-Werts in eine Zeichenfolge
Um das FullTime-Feld von einer ganzen Zahl in eine Zeichenfolge zu konvertieren, führen Sie eine Abfrage mit dem operator $convert aus, um die Konvertierung vorzunehmen.
db.stores.aggregate([{
$match: {
_id: "b0107631-9370-4acd-aafa-8ac3511e623d"
}
}, {
$project: {
fulltimeStaff: "$staff.totalStaff.fullTime",
fulltimeStaffAsString: {
$convert: {
input: "$staff.totalStaff.fullTime",
to: "string"
}
}
}
}])
Diese Abfrage gibt das folgende Ergebnis zurück:
[
{
"_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
"fulltimeStaff": 3,
"fulltimeStaffAsString": "3"
}
]
Beispiel 2: Konvertieren eines Int-Werts in einen booleschen Wert
Um das FullTime-Feld aus einer ganzen Zahl in einen booleschen Wert zu konvertieren, führen Sie eine Abfrage mit dem operator $convert aus, um die Konvertierung vorzunehmen. Jeder positive Wert für das FullTime-Feld wird in "true" konvertiert.
db.stores.aggregate([{
$match: {
_id: "b0107631-9370-4acd-aafa-8ac3511e623d"
}
}, {
$project: {
fulltimeStaff: "$staff.totalStaff.fullTime",
fulltimeStaffAsBool: {
$convert: {
input: "$staff.totalStaff.fullTime",
to: "bool"
}
}
}
}])
Diese Abfrage gibt das folgende Ergebnis zurück:
[
{
"_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
"fulltimeStaff": 3,
"fulltimeStaffAsBool": true
}
]
Beispiel 3: Konvertieren eines Int-Werts in einen Dezimalwert
Um das FullTime-Mitarbeiterfeld von einer ganzen Zahl in einen Dezimalwert zu konvertieren, führen Sie eine Abfrage mit dem operator $convert aus, um die Konvertierung vorzunehmen.
db.stores.aggregate([{
$match: {
_id: "b0107631-9370-4acd-aafa-8ac3511e623d"
}
}, {
$project: {
fulltimeStaff: "$staff.totalStaff.fullTime",
fulltimeStaffAsDecimal: {
$convert: {
input: "$staff.totalStaff.fullTime",
to: "decimal"
}
}
}
}])
Diese Abfrage gibt das folgende Ergebnis zurück:
[
{
"_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
"fulltimeStaff": 3,
"fulltimeStaffAsDecimal": "Decimal128('3')"
}
]