I have "Project" collection as below. I would like to update email domain in "users" & "owners" to "@mailm365.com"
{
"_id" : ObjectId("637e0af92ce49a1a816807bc"),
"title" : "Project-1",
"description" : "Project-1 Description",
"users" : [
{
"_id" : ObjectId("5f8881823542b1b499d7b351"),
"fullname" : "User-1",
"email" : "[email protected]"
}
],
"owners" : [
{
"_id" : ObjectId("5f8881823542b1b499d7b351"),
"fullname" : "User-2",
"email" : "[email protected]"
},
{
"_id" : ObjectId("61fb71ca294d34537dafe4c9"),
"fullname" : "User-3",
"email" : "[email protected]"
}
]}
I have tried with the following query but no luck. Any help to make this update query work?
db.Project.find().forEach(function(project)
{
project.users.forEach(function(user){
var updatedDomain = user.email.replace('@mail.com', '@mailm365.com');
user.email = updatedDomain;
});
project.owners.forEach(function(owner){
var updatedDomain = owner.email.replace('@mail.com', '@mailm365.com');
owner.email = updatedDomain;
});
db.Project.updateOne(
{
_id:project._id
},
{
$set:
{
"users": project.users,
"owners": project.owners
}
}
);
});