Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Operatorn $convert konverterar ett uttryck till ett värde av den angivna typen.
Syntax
{
$convert: {
input: < expression > ,
to: < type > ,
format: < binData format > ,
onError: < value to return on error > ,
onNull: < value to return on null >
}
}
Parameterar
| Parameter | Description |
|---|---|
input |
Indatavärdet som ska konverteras till den angivna typen |
to |
Den typ som indatavärdet ska konverteras till |
format |
(Valfritt) BinData-formatet för indata eller utdata när du konverterar ett värde till eller från binData |
onError |
(Valfritt) Värdet som ska returneras när konverteringen av indata till den angivna typen misslyckas |
onNull |
(Valfritt) Värdet som ska returneras när indatavärdet som ska konverteras till den angivna typen är null eller saknas |
Examples
Överväg det här exempeldokumentet från butiksamlingen.
{
"_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
}
]
}
]
}
Exempel 1: Konvertera ett Int-värde till en sträng
Om du vill konvertera fältet fullTime från ett heltal till en sträng kör du en fråga med operatorn $convert för att göra konverteringen.
db.stores.aggregate([{
$match: {
_id: "b0107631-9370-4acd-aafa-8ac3511e623d"
}
}, {
$project: {
fulltimeStaff: "$staff.totalStaff.fullTime",
fulltimeStaffAsString: {
$convert: {
input: "$staff.totalStaff.fullTime",
to: "string"
}
}
}
}])
Den här frågan returnerar följande resultat:
[
{
"_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
"fulltimeStaff": 3,
"fulltimeStaffAsString": "3"
}
]
Exempel 2: Konvertera ett Int-värde till ett booleskt värde
Om du vill konvertera fältet fullTime från ett heltal till ett booleskt värde kör du en fråga med operatorn $convert för att göra konverteringen. Alla positiva värden för fältet fullTime konverteras till true.
db.stores.aggregate([{
$match: {
_id: "b0107631-9370-4acd-aafa-8ac3511e623d"
}
}, {
$project: {
fulltimeStaff: "$staff.totalStaff.fullTime",
fulltimeStaffAsBool: {
$convert: {
input: "$staff.totalStaff.fullTime",
to: "bool"
}
}
}
}])
Den här frågan returnerar följande resultat:
[
{
"_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
"fulltimeStaff": 3,
"fulltimeStaffAsBool": true
}
]
Exempel 3: Konvertera ett Int-värde till ett decimalvärde
Om du vill konvertera fältet fullTime-personal från ett heltal till ett decimalvärde kör du en fråga med operatorn $convert för att göra konverteringen.
db.stores.aggregate([{
$match: {
_id: "b0107631-9370-4acd-aafa-8ac3511e623d"
}
}, {
$project: {
fulltimeStaff: "$staff.totalStaff.fullTime",
fulltimeStaffAsDecimal: {
$convert: {
input: "$staff.totalStaff.fullTime",
to: "decimal"
}
}
}
}])
Den här frågan returnerar följande resultat:
[
{
"_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
"fulltimeStaff": 3,
"fulltimeStaffAsDecimal": "Decimal128('3')"
}
]