Cómo utilizar MongoRegex (MongoDB C # Driver)
-
22-09-2019 - |
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 ..
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