2012-03-13 21 views
2

私は、たくさんのドキュメントを持つコレクションを持っています。大規模な文字列オブジェクト(フォーマットされていないキー/値)内でデータを抽出したいと考えています。これらの値のペアを抽出するためにMongoDB正規表現のグループ化

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

はこのようなものを使用することが可能ですか?

私はこれをPHPでやろうとしていますが、実際には遅くなっています。

どのように解決するためのきれいな方法を見つけることができますか?

答えて

2

あなたの質問を正しく理解していれば、残念ながらmongoはおそらくこのクエリをすばやく実行できません。 "find"コマンドは、 "config"値がその正規表現と一致する文書のみを検索しますが、そのクエリは遅くなる可能性があります。あなたが "config"フィールドにインデックスを持っていても、インデックスは正規表現の固定プレフィックス(ここではhttp://www.mongodb.org/display/DOCS/Advanced+Queries参照)とのマッチングにのみ使用できます。

文字列からデータを抽出するには、クエリを作成した後にアプリケーションコードでデータを抽出する必要があります。

キー値情報が文字列に埋め込まれるのではなく、ドキュメント自体にキー値として格納されるようにデータを再フォーマットすることはできますか?

関連する問題