如何根据mongo中的现有数据进行更新

时间:2010-09-09 19:10:00

标签: mongodb

一个mongo noob的排序,我感觉我正在从错误的方向解决这个问题。

我有大约700万份文件集。每个文档都有两个我想修改(不替换)的字段,基本上它们都是\\n的大字符串,我想用\n替换它们。

我花了大约一个小时试图找到一种方法来“反向引用”查询返回的对象,这完全不存在。对于这样的事情,最好的方法是什么?

2 个答案:

答案 0 :(得分:6)

您必须查询所有文档并逐个更新。如果你在JavaScript中执行它,它将类似于:

mydb = db.getSisterDB("whateverDBYoureUsing");
var cursor = mydb.foo.find();
while (cursor.hasNext()) {
    var x = cursor.next();

    /* replace \\n with \n in x's strings ... */

    db.foo.update({_id : x._id}, x);
}

您可以将其复制到.js文件(例如,replace.js),更改数据库和集合名称,并将其作为脚本从shell运行:

mongo replace.js

答案 1 :(得分:0)