Pregunta

Intento escribir una consulta con Casbah y Salat para consultar un campo que incluya partes de un nombre. Traté de usar una expresión regular como esta (dentro de un salatdao):

val regexp = (""".*"""+serverName+""".*""").r
val query = "serverName" -> regexp
val result = find(MongoDBObject(query))

y con

val regexp = ".*"+serverName+".*"

El registro está en MongoDB y cuando lo busco con el nombre completo, funciona.

¿Cómo es la forma correcta de decirle a Casbah que busque una parte de la cadena?

Otra cosa que me gustaría arreglar es la concatenación de cadenas para el parámetro. ¿Hay alguna forma predeterminada de escapar de los parámetros de entrada con Casbah, por lo que el parámetro no se interpreta como un comando JavaScript?

Saludos cordiales, Oliver

¿Fue útil?

Solución

En MongoDB Shell puede encontrar que los nombres del servidor contienen la cadena específica por

db.collection.find({serverName:/whatever/i})

No tengo ninguna experiencia con Casbah, creo que debe ser así. Prueba

val regexp = ("""/"""+serverName+"""/i""").r  
find(MongoDBObject("serverName" -> regexp))
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top