我正在尝试做
UPDATE TABLENAME SET COLUMN = COLUMN * 0.725
在mongodb中的。
这是我尝试的方法,但是似乎没有用。救命!
db.costs.update(
{$mul: {totalcost: NumberDecimal("0.725")}},
{multi: true}
);
产生
“ errmsg”:“未知的顶级运算符:$ mul”
及以下
db.costs.update(
{ recordId: {$regex:"*"}},
{$mul: {totalcost: NumberDecimal("0.725")}},
{multi: true}
);
生成
“ errmsg”:“正则表达式无效:无可重复”
很显然,我缺少语法并仔细阅读了文档,但是找不到任何可以帮助的东西。
谢谢
答案 0 :(得分:1)
以下查询可以为我们提供预期的输出:
db.collection.updateMany({},
{
$mul:{
"totalCost": 0.725
}
})
数据集:
{ "_id" : ObjectId("5d882f0d38db7cf8d3f75cdd"), "totalCost" : 1000 }
{ "_id" : ObjectId("5d882f0d38db7cf8d3f75cde"), "totalCost" : 1200 }
{ "_id" : ObjectId("5d882f0d38db7cf8d3f75cdf"), "totalCost" : 1500 }
{ "_id" : ObjectId("5d882f0d38db7cf8d3f75ce0"), "totalCost" : 1800 }
输出:
{ "_id" : ObjectId("5d882f0d38db7cf8d3f75cdd"), "totalCost" : 725 }
{ "_id" : ObjectId("5d882f0d38db7cf8d3f75cde"), "totalCost" : 870 }
{ "_id" : ObjectId("5d882f0d38db7cf8d3f75cdf"), "totalCost" : 1087.5 }
{ "_id" : ObjectId("5d882f0d38db7cf8d3f75ce0"), "totalCost" : 1305 }
答案 1 :(得分:0)