TL; DR: As of MongoDB 6.0, this is how I learned to replace some characters in a field in all documents. In the example below all “.” characters in field_name will be replaced by “_” character:
db.collection.updateMany(
{field_name: /\./},
[
{ $set:
{ field_name:
{ $replaceAll:
{ input: "$field_name", find: ".", replacement: "_"}
}
}
}
]
)The backstory is when using MongoDB with MongoEngine, there’s an issue when a key in a dictionary field contains the ‘.’ character: Problem handling dots in DictField keys so I needed to replace all dots in existing documents.
🙂
