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 ..

War es hilfreich?

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
scroll top