我有一个包含许多文档的集合,其中title
包含编码的&
字符(&
),我想将它们转换回来。
我想知道是否可以根据它的原始价值对字符串进行字符串替换。
例如,使用以下文档:
{
title: "this & that"
}
是否可以用正常的更新语句替换&
?我试过这样的事情:
db.questions.update({title: /&/}, {title: title.replace(/&/g, "&")});
但它引发了以下错误:ReferenceError: title is not defined
可以使用更新语句完成吗?如果没有,是对每个文档进行查找/预览/更新的最佳方法吗?
答案 0 :(得分:1)
我想知道是否可以根据它的原始值对值进行字符串替换....可以使用更新来完成 statment?
目前,通过访问,修改单个更新语句中的原始值,可以 更新mongodb中的字段值。
但它引发了以下错误:ReferenceError:title未定义
发生此错误,因为Mongodb未在其范围内看到正在更新的文档的title
字段。
如果没有,是对每个文档进行查找/预览/更新的最佳方法吗?
是。你需要这样做。
db.collection.find({"title":/&/}).forEach(function(doc){
db.collection.update({"_id":doc._id},
{$set:{"title": doc.title.replace(/&/g, "&")}})
})