2012-03-13 71 views
2

我有一堆文件的集合。我想在一个大的字符串对象(一个未格式化的键/值)中查找并从中提取数据。MongoDB正则表达式分组

是否有可能使用这样的事情:

db.apps.find({config: '/\n\n(.*) = (.*)\n\n?/'}) 

提取这些对值?

我想用php做到这一点,但变得非常慢。

我怎样才能找到一个干净的方式来解决它?

回答

2

如果我正确理解你的问题,不幸的是mongo可能无法快速执行此查询。 “查找”命令只会查找“config”值与该正则表达式匹配的文档,但该查询可能会很慢。即使您在“配置”字段中有索引,索引也只能用于匹配正则表达式的固定前缀(请参阅:http://www.mongodb.org/display/DOCS/Advanced+Queries)。

至于从字符串中提取数据,你必须在你的应用程序代码中做这个查询后。

是否可以重新格式化数据,以便将键值信息作为键值存储在文档本身中,而不是嵌入到字符串中?