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