Casbah/Salat: come interrogare un campo che una parte di una stringa è contenuta?
Domanda
Cerco di scrivere una domanda con Casbah e Salat per interrogare un campo che include parti di un nome. Ho provato a usare un'espressione regolare come questa (all'interno di una salatdao):
val regexp = (""".*"""+serverName+""".*""").r
val query = "serverName" -> regexp
val result = find(MongoDBObject(query))
e con
val regexp = ".*"+serverName+".*"
Il record è in MongoDB e quando lo cerco con il nome completo funziona.
In che modo è il modo giusto per dire a Casbah di cercare una parte della stringa?
Un'altra cosa che vorrei risolvere è la concatenazione delle stringhe per il parametro. Esiste un modo predefinito per sfuggire ai parametri di input con Casbah, quindi il parametro non viene interpretato come un comando JavaScript?
Cordiali saluti, Oliver
Soluzione
Nella shell MongoDB è possibile trovare i nomi del server contiene la stringa specifica di
db.collection.find({serverName:/whatever/i})
Non ho alcuna esperienza con Casbah, credo che debba essere così. Si prega di testare
val regexp = ("""/"""+serverName+"""/i""").r
find(MongoDBObject("serverName" -> regexp))