mongodb替换了许多文档中的一个字符

时间:2016-04-28 22:59:27

标签: mongodb mongodb-query

我在数据库中有这个集合,它包含很多文档,我希望所有“Æ”实例都替换为“ae”。

我的文件如下:

{ 
    "_id" : ObjectId("57071e9fee31902f0a9ad989"),
    "layout" : "normal", 
    "name" : "Æther Flash", 
    "manaCost" : "{2}{R}{R}", 
    "cmc" : 4,
    "colors" : [ "Red" ]
}

我想我应该使用像find_one_and_update这样的东西,也许?

1 个答案:

答案 0 :(得分:3)

这应该有效。这可能需要一段时间,具体取决于你的db有多大,考虑到它的MTG数据库可能很大;)但它应该可以工作。

db.getCollection('AllCards').find({$or: [{name: {$regex: 'Æ'}}, {name: {$regex: 'æ'}}]}).forEach(function (x) {
    x.name = x.name.replace(/Æ/g, 'Ae').replace(/æ/g, 'ae');

    db.getCollection('AllCards').save(x);
});

当然,这只涵盖了名字中的Æs。但我想你可以理清如何使它适用于所有必要的领域。