7

如何使用正则表达式Collection#find(/* HERE */)

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

2 回答 2

14

你很接近,你只需要将你的条件包装在一个MongoDBObject().

我们不得不<key> -> <value>在一堆地方提取隐式转换,因为它们很难正确捕获并且会破坏其他代码。

他们可能会回到 2.1。

改为这样做:

val coll = MongoConnection()("foo")("bar")
for(x <- coll.find(MongoDBObject("name" -> ".*son$".r))) {
   // some operations...
}
于 2011-02-03T17:03:19.620 回答
1

要添加 IGNORECASE 上面的答案将无法通过在 Casbah Scala 中的正则表达式末尾附加“/i”来工作。为此使用:

val EmailPattern = Pattern.compile(companyName,Pattern.CASE_INSENSITIVE)
val q = MongoDBObject("companyName" ->  EmailPattern)
val result = MongoFactory.COLLECTION_NAME.findOne(q)
于 2018-09-04T14:41:46.613 回答