是否可以在 MongoDB 的更新查询中获取自引用值?在 MySQL 中,您可以运行:
UPDATE table SET column1 = column2 + column3,...
据我所知,只有 MapReduce 可用于在 MongoDB 的服务器端执行此操作。我如何使用 MapReduce 来做到这一点?
是否可以在 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
} )