MongoDB:更新一个字段上的所有文档
如何更新所有文档用户字段除以100。 结果将是MongoDB:更新一个字段上的所有文档,mongodb,Mongodb,如何更新所有文档用户字段除以100。 结果将是 { "_id" : 1, "users" : 2329255 }, { "_id" :2, "users" : 2638831 } db.coll.update({},{$set:{'users':{'divide':['users',100]}}) ----它不工作请尝试以下查询: { "_id" : 1, "users" : 23292.55 }, { "_id" : 2, "
{
"_id" : 1,
"users" : 2329255
},
{
"_id" :2,
"users" : 2638831
}
db.coll.update({},{$set:{'users':{'divide':['users',100]}})
----它不工作请尝试以下查询:
{
"_id" : 1,
"users" : 23292.55
},
{
"_id" : 2,
"users" : 26388.31
}
上述查询将更改/更新数据库中的数据。如果要获取具有偏差值的记录,请使用$project:
db.coll.find().snapshot().forEach(
function (e) {
e.users = e.users/100;
// save the updated document
db.coll.save(e);
}
)
这不会更新数据,但会返回所需的值
根据您的要求使用。尝试以下查询:
{
"_id" : 1,
"users" : 23292.55
},
{
"_id" : 2,
"users" : 26388.31
}
上述查询将更改/更新数据库中的数据。如果要获取具有偏差值的记录,请使用$project:
db.coll.find().snapshot().forEach(
function (e) {
e.users = e.users/100;
// save the updated document
db.coll.save(e);
}
)
这不会更新数据,但会返回所需的值
根据您的要求使用。运算符仅对功能有效,而对功能无效。您要做的是使用方法创建一个计算字段,从中迭代结果
使用创建更新操作,您可以在一个请求中发送到服务器,而不是发送每个更新请求以及结果中的每个项目
以下示例演示了这一点:
db.coll.aggregate(
[
{ $project: { users: { $divide: [ "$users", 100 ] } } }
]
)
或者对于MongoDB 2.6.x和3.0.x版本,请使用以下版本: 这两种情况下的批量操作API都将有助于减少服务器上的IO负载,因为在要处理的集合中,每500个文档中只发送一次请求。操作符仅对函数有效,而对函数无效。您要做的是使用方法创建一个计算字段,从中迭代结果 使用创建更新操作,您可以在一个请求中发送到服务器,而不是发送每个更新请求以及结果中的每个项目 以下示例演示了这一点:
db.coll.aggregate(
[
{ $project: { users: { $divide: [ "$users", 100 ] } } }
]
)
或者对于MongoDB 2.6.x和3.0.x版本,请使用以下版本: 在这两种情况下,批量操作API都将通过在要处理的集合中每500个文档中只发送一次请求来帮助减少服务器上的IO负载