سؤال

هل لدى أي شخص أي فكرة عن كيفية استخدام 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 */

هل من الممكن أن يطبق السائق اقتباسًا مزدوجًا على Regex؟

شكرًا..

هل كانت مفيدة؟

المحلول

أنت فقط تريد استعلام بادئة بسيطة. regex الخاص بك هو ثم ^ + searchKey. أيضا ، سيسمح هذا النموذج MongoDB باستخدام فهرس على الاسم.

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

نصائح أخرى

أعتقد أنك بحاجة إلى عدم تضمين "/" في C#، أي ،

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