質問

誰が?文書検索のためのMongoRegexを使用する方法任意のアイデアを持っています。

私はこれをしようとしましたが、何も返さないの裏ます:

var spec = new Document();
spec.Add("Name", new MongoRegex("/" + searchKey + "*/", "i"));
collection.Find(spec)

は、それが仕事をしない理由疑問に思う、私はコンソールから次のコマンドを実行しようとします:

db.things.find({"Name":/john*/i}) /* WORKS */
db.things.find({"Name":"/john*/i"}) /* DOESN'T WORK */

は、ドライバが正規表現にダブルクォーテーションを適用することをその可能ですか?

おかげ..

役に立ちましたか?

解決

あなただけのシンプルなプレフィックスクエリをしたいです。あなたの正規表現は、その後^ + SEARCHKEYです。また、このフォームはMongoDBの名前にインデックスを使用できるようになります。

var spec = new Document("Name", new MongoRegex(string.Format("^{0}",searchKey), "i"));
collection.Find(spec)

他のヒント

私はあなたがすなわちC#で「/」Sを含まないようにする必要があると思う。

spec.Add("Name", new MongoRegex(searchKey + "*", "i"));

ソースコードを掘り後、私はようやく答えを見つけました:)

var spec = new Document();
spec.Add("Name", new MongoRegex(".*" + searchKey + ".*", "i"));
collection.Find(spec)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top