我有一個名為room的集合,其中包含一組名為potArr. 我的房間也有一個叫做平均鍋屬性,它應該等于平均值的potAmount中值potArr。我想不斷更新平均鍋。
這是我的代碼:
const rooms = await roomModel.find({});
for (let room of rooms) {
let sumOfPots = 0;
room.potArr.forEach((pot) => {
sumOfPots = pot.potAmount;
};
await roomModel.update({_id : room._id}, {$set : {averagePot: sumOfPots/room.pot.length}});
}
我希望能夠使用 mongoose 用一行總結上述代碼updateMany。我怎樣才能做到這一點?
uj5u.com熱心網友回復:
像這樣做:
await roomModel.collection.updateMany({}, [{$set: {averagePot: {$toInt: {$avg: '$potArr.pot'}}}}]);
您必須
.collection在模型上使用才能使mongoose行為像mongod.我過去常常
$toInt將可能的浮動結果四舍五入。您可以跳過該部分,如下所示。
await roomModel.collection.updateMany({}, [{$set: {averagePot: {$avg: '$potArr.pot'}}}]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/387321.html
