У меня большой стол, который быстро растет. Я хочу выполнить фильтрацию по полю, а затем получить отдельные значения по другому полю. Однако в RethinkDB это приводит к тому, что все записи читаются с диска, как я вижу с панели управления, что занимает слишком много времени. Мой запрос выглядит следующим образом:
r.db("mydb").table("mytable").filter({"AssetID": "a"}).pluck("StartedOn").distinct()
Исходный запрос был приведен ниже, но RethinkDB выдает ошибку, что это не таблица.
r.db("mydb").table("mytable").filter({"AssetID": "a"}).distinct({index:"StartedOn"})
e: Can only perform an indexed distinct on a TABLE in:
Оба поля StartedOn и AssetID индексируются. filter
не использует индекс, поэтому я попытался использовать getAll
, но все равно ошибка:
r.db("mydb").table("mytable").getAll("a", {index: 'AssetID'}).distinct({index:"StartedOn"})
e: Can only perform an indexed distinct on a TABLE in: