Mongodb 如何基于mongo中的现有数据进行更新

Mongodb 如何基于mongo中的现有数据进行更新,mongodb,Mongodb,有点像mongo noob,我感觉我在从错误的方向解决这个问题 我收集了大约700万份文件。每个文档都有两个我想修改(而不是替换)的字段,基本上它们是大字符串,有\\n,我想用\n替换它们 我花了大约一个小时试图找到一种方法来“反向引用”查询返回的对象,而该对象完全不存在。这样做的最佳方法是什么?您需要的是进行一次upsert您必须查询所有文档并逐个更新它们。如果您使用JavaScript执行此操作,它将类似于: mydb = db.getSisterDB("whateverDBYoureUsi

有点像mongo noob,我感觉我在从错误的方向解决这个问题

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


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

您需要的是进行一次upsert

您必须查询所有文档并逐个更新它们。如果您使用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),更改db和集合名称,并将其作为shell中的脚本运行:

mongo replace.js

跟我想找的差不多:)@Thilo:事实上,这和克里斯蒂娜建议的东西差不多。答案不太详细,但相同。所以我不明白,为什么马库斯得到了“-2”。