javascript - 如何更新 MongoDB 中字符串的子集?
问题描述
我想更新 monogdb 中字符串的以下子集
Collection: Paper
Field: URL
Document Current:
Name : House
URL : www.home.com/300x300
Document Updated
Name : House
URL : www.home.com/600x600
我已经尝试过了,但它似乎不起作用:
db.Paper.find({Name:"House"}).forEach(function(e,i) {
e.URL=e.URL.replace("300","600");
db.Paper.save(e);
});
有任何想法吗?
解决方案
很简单,你必须在regex
替换string
函数的模式中使用,如下所示:
> db.Paper.find({Name:"House"}).forEach(function (e, i) {e.URL = e.URL.replace(/300/g, "600"), printjson(e); db.Paper.save(e);} )
{
"_id" : ObjectId("5e016224a16075c5bd26fbe2"),
"Name" : "House",
"URL" : "www.home.com/600x600"
}
> db.Paper.find()
{ "_id" : ObjectId("5e016224a16075c5bd26fbe2"), "Name" : "House", "URL" : "www.home.com/600x600" }
>
所以 和 之间是有区别e.URL.replace("300", "600")
的e.URL.replace(/300/g, "600")
。你应该自己弄清楚。
如需参考,请浏览:https ://flaviocopes.com/how-to-replace-all-occurrences-string-javascript/