3

是否可以在 MongoDB 的更新查询中获取自引用值?在 MySQL 中,您可以运行:

UPDATE table SET column1 = column2 + column3,...

据我所知,只有 MapReduce 可用于在 MongoDB 的服务器端执行此操作。我如何使用 MapReduce 来做到这一点?

4

1 回答 1

3

是否可以在 MongoDB 的更新查询中获取自引用值?

不,使用普通查询/更新系统无法进行此更新。

据我所知,只有 MapReduce 可用于在 MongoDB 的服务器端执行此操作。

Map / Reduce 用于汇总现有数据并将该数据输出到单独的集合/表。Map / Reduce 不打算更新现有数据。

要使用 MongoDB 运行此更新,您需要for在整个集合上运行一个简单的循环,更新每个集合。您可以从包括 shell 在内的任何驱动程序中执行此操作。

db.table.find().forEach( function(x) {
  var newValue = x.column2 + x.column3; // Add column2 & 3
  db.table.update({_id: x._id}, { $set: { column1: newValue } }); // Set the value on column1
} )
于 2012-04-15T06:23:39.230 回答