Wie MongoRegex (MongoDB C # Treiber) verwenden,
-
22-09-2019 - |
Frage
Hat jemand eine Idee, wie MongoRegex für die Dokumentensuche benutzen?
Ich habe versucht, diese, kehrt aber nichts zurück:
var spec = new Document();
spec.Add("Name", new MongoRegex("/" + searchKey + "*/", "i"));
collection.Find(spec)
Sie fragen sich, warum es nicht funktioniert, habe ich versucht, folgenden Befehl von der Konsole ausführen:
db.things.find({"Name":/john*/i}) /* WORKS */
db.things.find({"Name":"/john*/i"}) /* DOESN'T WORK */
Ist das möglich, dass der Fahrer auf die regex doppelte Anführungszeichen gilt?
Danke ..
Lösung
Sie wollen nur eine einfache Präfix Abfrage. Ihre regex ist dann ^ + SearchKey. Außerdem wird diese Form erlaubt mongodb einen Index für Namen zu verwenden.
var spec = new Document("Name", new MongoRegex(string.Format("^{0}",searchKey), "i"));
collection.Find(spec)
Andere Tipps
Ich glaube, Sie brauchen, um nicht die "/" s in C #, d.h.
spec.Add("Name", new MongoRegex(searchKey + "*", "i"));
Nach dem Quellcode zu graben, fand ich endlich die Antwort:)
var spec = new Document();
spec.Add("Name", new MongoRegex(".*" + searchKey + ".*", "i"));
collection.Find(spec)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow