finden Sie durch regulären Ausdruck mit Casbah
-
28-10-2019 - |
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...
}
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