【发布时间】:2012-03-14 04:39:17
【问题描述】:
我有一个包含一堆文档的集合。我想在一个大字符串对象(未格式化的键/值)中查找并从中提取数据。
是否可以这样使用:
db.apps.find({config: '/\n\n(.*) = (.*)\n\n?/'})
要提取这对值吗?
我正在尝试使用 php 执行此操作,但速度真的很慢。
我怎样才能找到一个干净的方法来解决它?
【问题讨论】:
我有一个包含一堆文档的集合。我想在一个大字符串对象(未格式化的键/值)中查找并从中提取数据。
是否可以这样使用:
db.apps.find({config: '/\n\n(.*) = (.*)\n\n?/'})
要提取这对值吗?
我正在尝试使用 php 执行此操作,但速度真的很慢。
我怎样才能找到一个干净的方法来解决它?
【问题讨论】:
如果我正确理解您的问题,不幸的是 mongo 可能无法快速执行此查询。 “查找”命令只会查找“配置”值与该正则表达式匹配的文档,但该查询可能会很慢。即使您在“config”字段上有索引,该索引也只能用于匹配正则表达式的固定前缀(参见此处:http://www.mongodb.org/display/DOCS/Advanced+Queries)。
至于从字符串中提取数据,您必须在进行查询后在应用程序代码中执行此操作。
是否可以重新格式化您的数据,以便将键值信息作为键值存储在文档本身中,而不是嵌入到字符串中?
【讨论】: