db.auto_complete.find()
{ "_id" : ObjectId("6239a3c93a8e84c1b46d1bf4"), "category" : "??", "keyword" : "???", "weight" : 0, "shard" : 5, "searchCount" : 3, "satisfactionCount" : 4, "force" : false }
但我想更新weight = (searchCount X 0.5 satisfactionCount X 0.5)
我想要的結果=
{ "_id" : ObjectId("6239a3c93a8e84c1b46d1bf4"), "category" : "??", "keyword" : "???", "weight" : 3, "shard" : 5, "searchCount" : 3, "satisfactionCount" : 4, "force" : false }
weight = ( 3(searchCount)X0.5 4(satisfactionCount)X0.5 ) =>3.5 ( round off) => 3
我試過$set但我沒有解決這個問題如何用mongo查詢這個問題如果重量有小數點我想四舍五入小數點請幫助我....
uj5u.com熱心網友回復:
也許是這樣的:
db.collection.update({},
[
{
$addFields: {
// weight = (searchCount X 0.5 satisfactionCount X 0.5)
weight: {
$trunc: [
{
"$sum": [
{
"$multiply": [
"$searchCount",
0.5
]
},
{
"$multiply": [
"$satisfactionCount",
0.5
]
}
]
},
0
]
}
}
}
],{multi:true})
解釋:
使用帶有聚合管道的更新方法(mongodb 4.2 )將權重值替換為根據提供的公式計算的舍入值。添加選項 { multi:true } 以應用于集合中的所有檔案。
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/449262.html
標籤:mongodb
上一篇:當我使用應用程式時,使用supertest和Jest測驗Express、MongoDB和TypeScript失敗
下一篇:MongoDB聚合查找讓變數問題
