Frage

Verwendung regulärer Ausdrücke bei Collection#find(/* HERE */) wie:

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

War es hilfreich?

Lösung

Sie sind nah dran, Sie müssen nur Ihre Bedingungen in einen MongoDBObject() einschließen.

Wir mussten die impliziten Konvertierungen von <key> -> <value> an einer Reihe von Stellen durchführen, da sie schwer richtig zu fangen waren und anderen Code brachen.

Sie werden wahrscheinlich in 2.1 zurück sein.

Tun Sie dies stattdessen:

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

Andere Tipps

Zum Hinzufügen von IGNORECASE funktioniert die Antwort nicht, indem "/ i" am Ende des regulären Ausdrucks in Scala, Casbah, angehängt wird. Verwenden Sie dazu:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top