在每個檔案中,有兩列分別以字串形式表示價格的整數和小數:
{
"prod_id": "1022"
"whole_price": "10",
"decimal_price": "50"
}
...
我如何通過聚合管道執行這兩個列的合并,從而正確地將價格表示為每對檔案的值為 10.5 的浮點數?
{
"prod_id": "1022"
"complete_price": 10.5
}
...
uj5u.com熱心網友回復:
您可以在一個階段使用$toDoubleand來獲得所需的輸出:$concat$project
此查詢輸出作為complete_price連接值和“。”的欄位。創造雙重價值。然后決議為 double 以具有數字而不是字串。
db.collection.aggregate([
{
"$project": {
"prod_id": 1,
"complete_price": {
"$toDouble": {
"$concat": [
"$whole_price",
".",
"$decimal_price"
]
}
}
}
}
])
這里的例子
編輯:
另外,如果您的資料不穩定,您可以使用$convert(而不是直接$toDouble),它有onError并且onNull喜歡這個例子
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457737.html
上一篇:貓鼬查詢選擇父級和僅匹配的子級
