2012-03-13 65 views
2

我有一堆文件的集合。我想在一個大的字符串對象(一個未格式化的鍵/值)中查找並從中提取數據。MongoDB正則表達式分組

是否有可能使用這樣的事情:

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

提取這些對值?

我想用php做到這一點,但變得非常慢。

我怎樣才能找到一個乾淨的方式來解決它?

回答

2

如果我正確理解你的問題,不幸的是mongo可能無法快速執行此查詢。 「查找」命令只會查找「config」值與該正則表達式匹配的文檔,但該查詢可能會很慢。即使您在「配置」字段中有索引,索引也只能用於匹配正則表達式的固定前綴(請參閱:http://www.mongodb.org/display/DOCS/Advanced+Queries)。

至於從字符串中提取數據,你必須在你的應用程序代碼中做這個查詢後。

是否可以重新格式化數據,以便將鍵值信息作爲鍵值存儲在文檔本身中,而不是嵌入到字符串中?