Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB:更新一个字段上的所有文档_Mongodb - Fatal编程技术网

MongoDB:更新一个字段上的所有文档

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, "

如何更新所有文档用户字段除以100。 结果将是

{
    "_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负载