我在从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/ }} )
我将所有记录都以“factual”作为一个类别,但我不确定如何使用$ regex查询多个类别,我只是觉得完全避免使用正则表达式会更容易。有谁知道我必须运行什么命令才能做到这一点?感谢。
答案 0 :(得分:1)
试试这个
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);
});
修改强> 保留空间只需在正则表达式中添加空格。
您可以使用此行
el.Category[a].replace(/[^A-Za-z]*$/g, "");
处理下划线
el.Category[a].replace(/[^A-Za-z_]*$/g, "");