[英]MongoDB - Update documents adding new item within array based on multiplication field * constant
我有以下 MongoDB 文檔:
{
"_id" : ObjectId("5f6915c007f67a4588ec5f93"),
"timestamp" : "2021-06-01T00:00:00Z",
"sensor_id" : 1,
"location_id" : 1,
"measures" : [
{
"measure" : "Electricity_consumption",
"value" : 0.0134,
"unit" : "kWh/m2"
},
{
"measure" : "Temperature",
"value" : 24,
"unit" : "ºC"
}
]
}
假設千瓦時價格為 0.1 歐元,我想要實現的目標
{
"_id" : ObjectId("5f6915c007f67a4588ec5f93"),
"timestamp" : "2021-06-01T00:00:00Z",
"sensor_id" : 1,
"location_id" : 1,
"measures" : [
{
"measure" : "Electricity_consumption",
"value" : 0.0134,
"unit" : "kWh/m2"
},
{
"measure" : "Temperature",
"value" : 24,
"unit" : "ºC"
},
{
"measure" : "Electricity_consumtion_€",
"value" : 0.00134,
"unit" : "€/m2"
}
]
}
所以我想向數組中添加一個新項目並將 Electricity_consumption * 0.1 的值指定為“值”。
編輯:澄清一下,問題是 Electricity_consumption 不是常量值,它因文檔而異。 我需要的是將每個 Electricity_consumption 值乘以常數 0.1,並將其值分配給新項目 Electricity_consumption_€。
我需要將此更新添加到我收藏中的所有文檔。
謝謝你的幫助。
要更新集合中的所有文檔,您可以執行以下操作:
const electricity_consumption = 10;
db.collection.updateMany({} ,{
$push: {
measures: {
measure: "Electricity_consumtion_€",
value: electricity_consumption * 0.1,
unit: "€/m2"
}
}
})
這里我們使用$push
運算符將 append 和一個新的 object 放入measures
數組中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.