Bitte gehen Sie meine Frage durch:
MongoDB $ group und explizite Gruppenbildung mit berechneter Spalte
Aber dieses Mal muss ich Zeichenfolgen und nicht Zahlen vergleichen. Die CASE
-Abfrage muss ein LIKE
haben:
CASE WHEN source LIKE '%Web%' THEN 'Web'
Ich muss dann nach Quelle gruppieren. Wie schreibt man das in Mongo? Ich versuche Folgendes, aber nicht sicher, ob $regex
in $cond
unterstützt wird. Übrigens, gibt es irgendwo in $cond
eine Liste gültiger Operatoren? Sieht aus wie $cond
ist nicht sehr lieb von mir :)
Es gibt viele andere Werte, die ich schreiben muss, um eine tiefere Verschachtelung zu machen. Dies ist nur ein Beispiel mit nur "Android" und "Web" der Kürze halber. Ich habe beides mit $eq
und $regex
versucht. Die Verwendung von $regex
gibt den Fehler eines ungültigen Operators, während die Verwendung von $eq
den Regex-Ausdruck nicht versteht und alles unter "Others" ablegt. Wenn dies mit Regex möglich ist, lassen Sie mich bitte wissen, wie man es für die Groß- und Kleinschreibung schreibt.
Danke für jede Hilfe: -)
Nun, es scheint immer noch nicht geplant zu sein :( Ссылка
Ich benutze 2.6 und habe einen Blick auf 3.0 geworfen, aber es ist einfach nicht da.
Es gibt jedoch eine Problemumgehung, wenn Sie Ihr Problem auf einen stabilen Teilstring projizieren können. Dann können Sie $ substr das Feld und mehrere verschachtelte $ cond verwenden. Es ist peinlich, aber es funktioniert.
Tags und Links regex mongodb mongodb-query