MongoRegexを使用する方法(MongoDBはC#ドライバ)
-
22-09-2019 - |
質問
誰が?文書検索のための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)
所属していません StackOverflow