MongoDB中的字符串替换?

时间:2014-12-01 21:49:23

标签: mongodb

我有一个包含许多文档的集合,其中title包含编码的&字符(&),我想将它们转换回来。

我想知道是否可以根据它的原始价值对字符串进行字符串替换。

例如,使用以下文档:

{
   title: "this & that"
}

是否可以用正常的更新语句替换&?我试过这样的事情:

db.questions.update({title: /&/}, {title: title.replace(/&/g, "&")});

但它引发了以下错误:ReferenceError: title is not defined

可以使用更新语句完成吗?如果没有,是对每个文档进行查找/预览/更新的最佳方法吗?

1 个答案:

答案 0 :(得分:1)

  

我想知道是否可以根据它的原始值对值进行字符串替换....可以使用更新来完成   statment?

目前,通过访问修改单个更新语句中的原始值,可以 更新mongodb中的字段值。

  

但它引发了以下错误:ReferenceError:title未定义

发生此错误,因为Mongodb未在其范围内看到正在更新的文档的title字段。

  

如果没有,是对每个文档进行查找/预览/更新的最佳方法吗?

是。你需要这样做。

db.collection.find({"title":/&amp/}).forEach(function(doc){
db.collection.update({"_id":doc._id},
                     {$set:{"title": doc.title.replace(/&/g, "&")}})
})