我的MongoDB看起来像这样:
[
{
"status" : 0,
"name" : "Yaknow",
"email" : "yaknow@not.this",
"_id" : "5875a42ea469f40c684de385"
},
{
"status" : 1,
"name" : "johnk",
"email" : "johnk@not@this",
"_id" : "586e31c6ce07af6f891f80fd"
}
]
与此同时,所有的电子邮件都发生了变化,我得到了一个新的Json:
[
{
"email" : "yaknow@gmai.new",
"_id" : "5875a42ea469f40c684de385"
},
{
"email" : "johnk@gmail.new",
"_id" : "586e31c6ce07af6f891f80fd"
}
]
如何更新所有电子邮件?
答案 0 :(得分:2)
mongodb中没有运算符允许您通过替换字符串的某些部分来修改字符串值。您应该获取文档,然后是for each文档,您应该在本地准备更新的值并更新文档:
db.collection.find({}).forEach(function(doc){
var newEmail = doc.email.substr(0, doc.email.indexOf('@')) + "@gmail.new";
db.collection.update({_id: doc._id}, {$set:{email: newEmail}});
});