我正在尝试在mongodb的sql中重现REPLACE函数。
我的收藏集“ 日志”在“ 文本”字段中具有此数据。
[01]ABC0007[0d0a]BB BABLOXC[0d0a]067989 PLPXBNS[0d0a02]BBR OIC002 L5U0/P AMD KAP 041800 T1200AND 2+00[0d0a0b03]
我要做的就是使用正则表达式(javascript)删除'[..]'并像这样使用contains('PLPXBNSBBR'),以便表达式在mongo文档中根据javadocs返回true
下面的查询成功运行并返回匹配的行。
db.log.find({“ $ where”:“返回this.message.replace(new RegExp('0d0a02'),”)。contains('PLPXBNS [] BBR')“}); >
但是,我需要删除“ [..]”并进行匹配,例如PLPXBNSBBR。
这些是我尝试失败的
db.log.find({“ $ where”:“返回this.message.replace(新 RegExp('\ [。*?\]','g'),'').contains('PLPXBNSBBR')“});
db.log.find({“ $ where”:“返回this.message.replace(新 RegExp('/[(.*?)]','g'),'').contains('PLPXBNSBBR')“});
db.log.find({“ $ where”:“返回this.message.replace(新 RegExp('//[.*//]'),'').contains('PLPXBNSBBR')“});
db.log.find({“ $ where”:“返回this.message.replace(新 RegExp('[。*?]'),'').contains('PLPXBNSBBR')“});
从较早的discussion看来,如果我可以将模式作为/ [[^]] +] / g传递,它应该剥离[..],但它没有这样做并且不返回匹配的行。
答案 0 :(得分:0)
好的,我能够成功使用链接替换来获得想要的结果。