我尝试用Casbah和Salat编写一个查询,以查询包含部分名称的字段。我试着使用这样的正则表达式(在SalatDAO中):
val regexp = (""".*"""+serverName+""".*""").r
val query = "serverName" -> regexp
val result = find(MongoDBObject(query))
和
val regexp = ".*"+serverName+".*"
该记录在MongoDB中,当我用完整的名称搜索它时,它就可以工作了。
告诉卡巴搜索字符串的一部分的正确方法是什么?
我想修复的另一件事是参数的字符串串联。有没有默认的方法可以用casbah转义输入参数,所以参数不是解释为javascript命令?
谨致问候,Oliver
在mongodb shell中,您可以通过找到包含特定字符串的服务器名称
db.collection.find({serverName:/whatever/i})
我对卡巴没有任何经验,我相信一定是这样。请测试
val regexp = ("""/"""+serverName+"""/i""").r
find(MongoDBObject("serverName" -> regexp))