2016-08-03 5 views
0

私は急速に成長する大きなテーブルを持っています。私はフィールドでフィルタリングし、別のフィールドで別の値を取得します。しかし、RethinkDBでは、ダッシュボードから見るとすべてのレコードがディスクから読み込まれるため、時間がかかりすぎます。私のクエリは次のようになります: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を使用しようとしましたが、それでも同じエラー:1つのインデックスで

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

答えて

2

あなたがすることができませんgetAllし、別のインデックスにインデックス付きdistinctを使用しています。この場合、getAllの後にインデックスされていないdistinctをお勧めします。

関連する問題