2017-12-12 18 views
-3

私はipythonとmongodbプロジェクトに取り組んでおり、正規表現に問題があります。要するに は、私は私の質問はどのようにregexcodeだけ単に「foo」を印刷すると「<」/ FOO>を避けるためにでなければならないことである一部の文字列を避ける正規表現コード

{ 'aa':'foo </FOO >' } 

デシベルで、このような文書がありますか?

はこれまでのところ、私はこのようにやった:私は予想通り

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

このコードはうまく動作します。しかし、私は文書にいくつかの文字列をフィルタリングしたいので、私は

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

そして、db.collection.aggregate([match, project, unwind, match2])

を追加したい。しかし、それはNoneを返します。それを修正するには?

+0

これはあまりにも広すぎます。質問を少し明確にすることはできますか?私。プログラミング言語、DB、など。文字列は最初どのようにそこに到達しましたか? – Jan

+0

OK。私はそれを明確にするために更新する – dede

答えて

0

MongoDBはまだ予測で$regexをサポートしていません。しかし、いくつかの点でこれに対処しますオープンJIRAチケットがあります:あなたは$substringベースのアプローチのために行く場合を除き

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

だからあなたは、この時点でのMongoDBを使用してフィールドから文字列を抽出することはできませんは、のもちろん、やや強力です。

しかし、あなただけそうみたいで"foo"で要素を返すために、すべてのドキュメントをフィルタすることができます

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

そしてあなたは、例えば、一致する部分を抽出するために、いくつかのクライアント側のコードを使用することができますJavaScriptの場合:

var regEx = /(foo)/; 
doc.aa = regEx.exec(doc.aa)[1]; // return first matching group 
関連する問題