Domanda

Qualcuno ha avere alcuna idea di come usare MongoRegex per la ricerca del documento?

Ho tentato, ma non restituisce nulla di nuovo:

var spec = new Document();
spec.Add("Name", new MongoRegex("/" + searchKey + "*/", "i"));
collection.Find(spec)

Chiedendo perché non funziona, ho provato ad eseguire seguente comando dalla console:

db.things.find({"Name":/john*/i}) /* WORKS */
db.things.find({"Name":"/john*/i"}) /* DOESN'T WORK */

È che possibile che il conducente si applica doppia citazione per l'espressione regolare?

Grazie ..

È stato utile?

Soluzione

si desidera solo un semplice query prefisso. Il tuo regex è quindi ^ + SearchKey. Inoltre, questa forma permetterà MongoDB di utilizzare un indice sul nome.

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

Altri suggerimenti

Credo che avete bisogno di non includere il "/" s in C #, cioè.,

spec.Add("Name", new MongoRegex(searchKey + "*", "i"));

Dopo aver scavato il codice sorgente, ho finalmente trovato la risposta:)

var spec = new Document();
spec.Add("Name", new MongoRegex(".*" + searchKey + ".*", "i"));
collection.Find(spec)
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top