在从csv文件导入数据之后,我正在尝试编辑mongodb集合中的数据。我的一个字段包含字母字符和数字字符的混合,我希望编辑它,使它只包含字母字符,以使查询更容易。
所以我想改变这个:
"categories" : [
"9100005:1:factual",
"9200041:2:arts_culture_and_the_media",
"9200055:2:history"
]这方面:
"categories" : [
"factual",
"arts culture and the media",
"history"
]我知道使用$regex可以查询某些类别,所以使用:
db.bbc.find( { categories: {$regex: /factual/ }} )我获得了所有以“事实”作为类别的记录,但我不确定如何使用$regex查询多个类别,我只是觉得完全避免使用正则表达式会更容易。有人知道我要跑哪条命令才能做到这一点吗?谢谢。
发布于 2017-05-02 14:45:36
尝尝这个
db.test1.find().snapshot().forEach(function (el) {
for(a in el.Category){
print(el.Category[a].replace(/[^A-Za-z]/g, ""));
el.Category[a]=el.Category[a].replace(/[^A-Za-z]/g, "");
}
db.test1.save(el);
});编辑:为了保存空间,只需在regex中添加空间。
你可以用这行
el.Category[a].replace(/[^A-Za-z]*$/g, "");处理下划线
el.Category[a].replace(/[^A-Za-z_]*$/g, "");https://stackoverflow.com/questions/43740335
复制相似问题