2016-08-02 18 views
1

私はmongodb(ネイティブドライバ)で動作するノードアプリケーションを持っています。私はフィールド "親"、たとえば"parent":"root/test/dir/"のドキュメントを持っています。これは、 "親"フィールドに含まれているすべてのドキュメント、たとえば "root/test"を検索する方法です。 db.collection.find({"parent": new Regexp("root/test")})動作しません。文字列内の '/'を含むJavaScript正規表現

+1

'' root \/test "'を試しましたか? – Blobonat

答えて

2

@Blobonatが指摘するように、バックスラッシュ文字を使用すると、正規表現で次の文字の特殊な意味を上書きすることができます。

new Regexp("root\/test")

MDNは、このための優れたリソースです:

特殊文字の前にバックスラッシュは次の文字が特殊なものではなく、文字通りに解釈されるべきであることを示しています。

同様に、その逆は真です。

非特殊文字に先行するバックスラッシュは、次の文字が特殊文字であり、文字通り解釈されないことを示します。

あなたはより多くの情報here

here from a question on SOの大きなセットは問題がMongoDBのドライバとしたURLと正規表現

+1

'\\ /([^;] +);のような実際の正規表現に難しいバックスラッシュをバックスラッシュする必要があるため、' this \ that'のような余分な楽しい文字列は 'this \\ that'になります; version = ' –

0

での作業のためもあります見つけることができます。削除機能は私のためには機能しませんでした。何がうまくいったのはdeleteManyです。私の正規表現はうまくいきました、私はそれをログアウトして、悲しいの上の答えは/\root/\test'でした。 new Regexpは素晴らしい作品です。

関連する問題