Casbah/Salat: Wie kann man ein Feld abfragen, das ein Teil einer Zeichenfolge enthalten ist?

StackOverflow https://stackoverflow.com/questions/8848106

  •  27-10-2019
  •  | 
  •  

Frage

Ich versuche, eine Abfrage mit Casbah und Salat zu schreiben, um ein Feld abzufragen, das Teile eines Namens enthält. Ich habe versucht, einen regulären Ausdruck wie diesen zu verwenden (in einem Salatdao):

val regexp = (""".*"""+serverName+""".*""").r
val query = "serverName" -> regexp
val result = find(MongoDBObject(query))

und mit

val regexp = ".*"+serverName+".*"

Der Datensatz befindet sich in MongoDB und wenn ich ihn mit dem vollständigen Namen suche, der funktioniert.

Wie ist der richtige Weg, um Casbah zu sagen, er solle nach einem Teil der Zeichenfolge suchen?

Eine andere Sache, die ich beheben möchte, ist die String -Verkettung für den Parameter. Gibt es eine Standardmethode, um Eingabeparameter mit Casbah zu entkommen, sodass der Parameter nicht als JavaScript -Befehl interpretiert wird?

Mit freundlichen Grüßen Oliver

War es hilfreich?

Lösung

In MongoDB Shell finden Sie die Servernamen enthält die spezifische Zeichenfolge nach

db.collection.find({serverName:/whatever/i})

Ich habe keine Erfahrung mit Casbah, ich glaube, es muss so sein. Bitte testen Sie

val regexp = ("""/"""+serverName+"""/i""").r  
find(MongoDBObject("serverName" -> regexp))
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top