正则代码避免一些字符串



我正在从事ipython和mongodb项目,并且我的正则表达情况有问题。简而言之,我在DB

中有这样的文档
{ 'aa':'foo </FOO >' }

我的问题是,RegexCode应该如何仅打印" Foo"并避免'&lt;'/foo>?

到目前为止,我已经这样做了:

db.collection.aggregate([match, project, unwind])

此代码按照我的预期运行良好。但是,我想在文档中过滤一些字符串,所以我想添加

match2 = {"$match" : {"aa" : / regex code here/}}

然后,db.collection.aggregate([match, project, unwind, match2])

但没有返回。如何修复它?

mongoDB不支持投影中的$regex。但是,有一张开放的JIRA票,可以在某个时候解决此问题:

https://jira.mongodb.org/browse/server-11947

因此,除非您选择基于$ substring的方法,否则您目前无法使用MongoDB从字段中提取字符串。

但是,您可以将所有文档过滤以仅用 "foo"返回元素,例如:

match2 = {"$match" : {"aa" : /foo/}}

然后,您可以使用一些客户端代码来提取匹配零件,例如在JavaScript中:

var regEx = /(foo)/;
doc.aa = regEx.exec(doc.aa)[1]; // return first matching group

相关内容

  • 没有找到相关文章

最新更新