2016-06-27 11 views
1

Ich möchte herausfinden, wie viele meiner Schüler von einem bestimmten Lehrer unterrichtet werden. Einige der Schüler haben jedoch mehrere Lehrer. Der Wert des teacher_name Eintrags wird als ein Array dargestellt. Die folgende Abfrage zeigt nur die Ergebnisse an, bei denen die Übereinstimmung exakt ist, dh, es werden keine Ergebnisse angezeigt, wenn mehrere Lehrer vorhanden sind.Wie man .filter() verwendet, um eine Übereinstimmung in einem Array zurückzugeben (rethinkdb)

Wie kann ich durch die Arrays iterieren, um übereinzustimmen, wenn es die angegebene Zeichenfolge enthält? Gibt es dafür einen API-Befehl oder kann ich gute JavaScript-Methoden verwenden?

Antwort

1

Sie wollen wahrscheinlich so etwas wie:

r.db('client').table('basic_info').filter(function(row) { 
    return row('teacher_name').contains('Andrew McSwain'); 
}) 
+0

nicht funktionierte. Fehlercode: e: Konvertierung von STRING in SEQUENCE nicht möglich in: r.db ("client"). table ("basic_info"). filter (funktion (var_28) {return var_28 ("teacher_name"). enthält ("Andrew McSwain ");}) – Andrew

+0

Das bedeutet wahrscheinlich, dass Sie mindestens eine Zeile in Ihrer Tabelle haben, in der' Lehrer_Name' eine Zeichenfolge anstelle eines Arrays ist. Der einfachste Weg, das zu beheben, besteht darin, dass alle solche Einträge "Lehrer_Name" ein Array von einem Element haben. – mlucy