我正在转换mongodb的文档_id
from :
"_id" : ObjectId("5c09b6002351d50e100c5f6c"),
To:
"_id" : "5c09b6002351d50e100c5f6c",
我正在使用正则表达式text.replace(/ObjectId\((.*)\)/gi,"$1");
问题是有些ObjectId
被转换了,但是有些没有被转换,不知道为什么。.
small example code of what i am doing:
var fs=require('fs');
var data = fs.readFileSync('./abc.json');
str = data.toString()
str = str.replace(/ObjectId\((.*)\)/g,"$1");
fs.writeFile('str','data.json');
note:
我已经使用Studio 3T导出了输入文件
谢谢!
答案 0 :(得分:0)
问题在于您的.*
也与整个“ ObjectId(...)”表达式匹配。
一种解决方案是使用非贪婪的组:
text.replace(/ObjectId\((.*?)\)/gi,"$1");
一种更好(性能更高)的方法是:如果可以的话,将其明确:
text.replace(/ObjectId\(("[^"]*")\)/gi,"$1");