كيفية استخدام Mongoregex (Mongodb C# Driver)
-
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 */
هل من الممكن أن يطبق السائق اقتباسًا مزدوجًا على 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)
لا تنتمي إلى StackOverflow