如何在Collection#find(/* HERE */)
使用正则表达式,如:
val coll = MongoConnection()("foo")("bar")
for(x <- coll.find("name" -> ".*son$".r)) {
// some operations...
}
答案 0 :(得分:14)
你很近,你只需要将你的条件包裹在MongoDBObject()
。
我们不得不在一堆地方取出<key> -> <value>
的隐式转换,因为它们很难正确捕获并且破坏了其他代码。
他们可能会回到2.1。
请改为:
val coll = MongoConnection()("foo")("bar")
for(x <- coll.find(MongoDBObject("name" -> ".*son$".r))) {
// some operations...
}
答案 1 :(得分: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)