Pregunta

¿Alguien ha tener alguna idea de cómo utilizar MongoRegex para la búsqueda de documentos?

Me trató esto, pero vuelve nada a cambio:

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

Se pregunta por qué no trabajo, me trató de ejecutar comando siguiente desde la consola:

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

¿Es eso posible que el conductor aplica comillas dobles para la expresión regular?

Gracias ..

¿Fue útil?

Solución

lo que desea es un prefijo de consulta simple. Su expresión regular es entonces ^ + SearchKey. Además, esta forma permitirá mongodb utilizar un índice en Nombre.

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

Otros consejos

creo que necesita para no incluye el "/" S en C #, es decir.,

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

Después de cavar el código fuente, que finalmente encontró la respuesta:)

var spec = new Document();
spec.Add("Name", new MongoRegex(".*" + searchKey + ".*", "i"));
collection.Find(spec)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top