【发布时间】:2016-03-02 07:33:48
【问题描述】:
我的表名是:table_video 我在 db 中的字段名称是:url_value
谁的值是:http://192.168.1.124/test/abcd/abcd.m3u8
我需要的值:http://192.168.1.124/test/abcd_NEW/abcd_NEW.m3u8
“abcd”的位置有多个值,上面的url只是一个例子。
var cursor = db.table_video.find();
while (cursor.hasNext()) {
var x = cursor.next();
print("\n\n-----------------------------------");
print("Before : url_value : "+x['url_value']);
x['url_value'] = x['url_value'].replace(/^(.*?)\/test\/(.*?)\/(.*?)\.m3u8$/g, $1/test/$2_NEW/$2_NEW.m3u8);
print("After : url_value : "+x['url_value']);
db.table_video.update({_id : x._id}, x);
}
当我在 mongo 控制台中执行上述命令时,它给出了一个错误:2015-11-28T12:40:08.342+0530 ReferenceError: $1 is not defined
非常感谢任何帮助
【问题讨论】:
-
我的正则表达式已经在 Kate 中工作了,即使我检查了你提供的链接,但是它在 mongodb 中给出了错误
-
@user2767817 你的正则表达式错误,它在 Mongo 中不起作用。使用宇智波提供的那个。
-
宇智波提供的正则表达式是对的,但是,当我在mongodb中使用时,它会报错:2015-11-28T12:40:08.342+0530 ReferenceError: $1 is not defined
-
请edit您的问题包含新代码
标签: javascript regex mongodb replace mongodb-query