Casbah / Salat: Как запросить поле, содержащее часть строки? - PullRequest
3 голосов
/ 13 января 2012

Я пытаюсь написать запрос с помощью Casbah и Salat, чтобы запросить поле, содержащее части имени.Я пытался использовать регулярное выражение, подобное этому (внутри SalatDAO):

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

и с

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

Запись находится в MongoDB, и когда я ищу ее с полным именем, онаработает.

Как правильно сказать casbah искать часть строки?

Еще одна вещь, которую я хотел бы исправить, - это конкатенация строк для параметра.Есть ли способ по умолчанию экранировать входные параметры с помощью casbah, поэтому параметр не интерпретируется как команда javascript?

С наилучшими пожеланиями, Оливер

1 Ответ

1 голос
/ 13 января 2012

В оболочке mongodb вы можете найти имена серверов, в которых указана конкретная строка:

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

У меня нет опыта работы с casbah, я считаю, что так и должно быть.пожалуйста, проверьте

val regexp = ("""/"""+serverName+"""/i""").r  
find(MongoDBObject("serverName" -> regexp))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...