query not and mongodb mongodb-.net-driver

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)