найти по регулярному выражению с Casbah - PullRequest
7 голосов
/ 03 февраля 2011

как использовать регулярные выражения в Collection#find(/* HERE */) как:

val coll = MongoConnection()("foo")("bar")
for(x <- coll.find("name" -> ".*son$".r)) {
   // some operations...
}

Ответы [ 2 ]

14 голосов
/ 03 февраля 2011

Вы близки, вам просто нужно обернуть ваши условия в MongoDBObject().

Нам пришлось вытащить неявные преобразования <key> -> <value> в кучу мест, потому что их было трудно поймать правильнои взламывали другой код.

Они, вероятно, вернутся в 2.1.

Сделайте это вместо:

val coll = MongoConnection()("foo")("bar")
for(x <- coll.find(MongoDBObject("name" -> ".*son$".r))) {
   // some operations...
}
1 голос
/ 04 сентября 2018

Для добавления IGNORECASE выше ответ не будет работать, добавив "/ i" в конце регулярного выражения в Scala, Касба. Для этого используйте:

val EmailPattern = Pattern.compile(companyName,Pattern.CASE_INSENSITIVE)
val q = MongoDBObject("companyName" ->  EmailPattern)
val result = MongoFactory.COLLECTION_NAME.findOne(q)
...