私は次の構造を持っています:
Item {
id string,
title string
tags []string,
time int,
parent string
}
私が欲しいもの、list all items with tags [tag1, tag2, ... etc] of parent "parent-1" and order by time
だから私はこれをやった
r.db("db").table("tb").indexCreate("allByTime", function(row){
return row("tags").map(function(tag){
return [row("parent"), tag, row("time")]
})
})
このようなクエリで動作しました
r.db("db").table("tb").between(["parent-1", "tag1", 0], ["parent-1", "tag1", <some-bigger-timestamp>], {index: "allByTime"}).orderBy(...)
しかし、私もこのようなものが欲しい
r.db("db").table("tb").between(["parent-1", ["tag1", "tag2"], 0], ["parent-1", ["tag1", "tag2"], <some-bigger-timestamp>], {index: "allByTime"}).orderBy(...)
助言がありますか ?
注 ->使いたくないr.filter(...)
私はこのようなことを試しました
r.union(<between-query-1>, <between-query-2>, ...)
しかし、クエリ間に多くの大きなテーブルがある場合、オーバーヘッドがどうなるかわかりません。