2016-08-03 29 views
0

Ich habe eine große Tabelle, die schnell wächst. Ich möchte nach einem Feld filtern und dann die eindeutigen Werte durch ein anderes Feld erhalten. In RethinkDB führt dies dazu, dass alle Datensätze vom Datenträger gelesen werden, wie ich es vom Dashboard aus sehe, was zu viel Zeit in Anspruch nimmt. Meine Frage lautet wie folgt:RethinkDB Filter dann distinct durch Index

r.db("mydb").table("mytable").filter({"AssetID": "a"}).pluck("StartedOn").distinct() 

Die ursprüngliche Abfrage folgt wurde aber RethinkDB einen Fehler gibt, dass es keinen Tisch ist.

Beide Felder StartedOn und AssetID sind indiziert. filter nicht verwendet Index nicht, also habe ich versucht getAll aber immer noch denselben Fehler zu verwenden:

r.db("mydb").table("mytable").getAll("a", {index: 'AssetID'}).distinct({index:"StartedOn"}) 
e: Can only perform an indexed distinct on a TABLE in: 

Antwort

2

Sie können nicht getAll durch einen Index und dann eine indizierte distinct auf einem anderen Index verwenden. Ich würde in diesem Fall eine nichtindexierte distinct nach einer getAll empfehlen.