not - Cómo usar MongoRegex(Controlador MongoDB C#)
not like mongodb (3)
Creo que no debes incluir los "/" en C #, es decir,
spec.Add("Name", new MongoRegex(searchKey + "*", "i"));
¿Alguien tiene alguna idea de cómo usar MongoRegex para la búsqueda de documentos?
Intenté esto, pero no devuelve nada:
var spec = new Document();
spec.Add("Name", new MongoRegex("/" + searchKey + "*/", "i"));
collection.Find(spec)
Preguntándome por qué no funciona, traté de ejecutar el siguiente comando desde la consola:
db.things.find({"Name":/john*/i}) /* WORKS */
db.things.find({"Name":"/john*/i"}) /* DOESN''T WORK */
¿Es posible que el controlador aplique una comilla doble a la expresión regular?
Gracias..
Después de cavar el código fuente, finalmente encontré la respuesta :)
var spec = new Document();
spec.Add("Name", new MongoRegex(".*" + searchKey + ".*", "i"));
collection.Find(spec)
solo quieres una consulta de prefijo simple. Su expresión regular es entonces ^ + searchKey. Además, este formulario permitirá a mongodb usar un índice en Nombre.
var spec = new Document("Name", new MongoRegex(string.Format("^{0}",searchKey), "i"));
collection.Find(spec)