Casbah/Salat: Как запросить поле, которое содержит часть строки?
Вопрос
Я стараюсь написать запрос с Casbah и Salat, чтобы запросить поле, которое включает в себя части названия. Я пытался использовать подобное регулярное выражение (внутри салатдао):
val regexp = (""".*"""+serverName+""".*""").r
val query = "serverName" -> regexp
val result = find(MongoDBObject(query))
и с
val regexp = ".*"+serverName+".*"
Запись находится в MongoDB, и когда я ищу его с полным именем, оно работает.
Как правильный способ сказать Casbah искать часть строки?
Еще одна вещь, которую я хотел бы исправить, - это конкатенация строки для параметра. Есть ли какой -нибудь способ по умолчанию, чтобы избежать входных параметров с Casbah, поэтому параметр не интерпретируется как команда JavaScript?
С уважением, Оливер
Решение
В оболочке MongoDB вы можете найти имена серверов содержит конкретную строку
db.collection.find({serverName:/whatever/i})
У меня нет опыта с Casbah, я считаю, что это должно быть так. Пожалуйста, протестируйте
val regexp = ("""/"""+serverName+"""/i""").r
find(MongoDBObject("serverName" -> regexp))