另一种解决方案,其中包括所有的步骤:
1 /创建测试表
r.table('foo').insert([
{foo: 1},
{foo: 2},
{foo: 3},
{foo: 4},
{foo: 5}
])
2 /列表表格内容
r.table('foo')
输出:
[
{"foo":4,"id":"3c6873af-0dfc-41d3-99ad-894bab981635"},
{"foo":1,"id":"302baaa5-1443-408c-bb58-7970e71129ac"},
{"foo":2,"id":"ca5ff9c2-8079-4a19-9cfc-4e7b0a834555"},
{"foo":5,"id":"aabb6c38-710a-444c-a4ae-b8ee14b5e802"},
{"foo":3,"id":"4fc2e6e8-9434-4fa9-831b-4208bc82fd35"}
]
3 /创建二级索引
r.table('foo').indexCreate('id_prefix', function(d){
return d('id').slice(0, 13)
})
4 /列表索引内容
r.table('foo').distinct({index:'id_prefix'})
输出:
["302baaa5-1443","3c6873af-0dfc","4fc2e6e8-9434","aabb6c38-710a","ca5ff9c2-8079"]
5 /使用索引来查找与前缀文件(一个或多个) “4fc2e6e8-9434”
r.table('foo').getAll("4fc2e6e8-9434", {index:'id_prefix'})
输出
[{"foo":3,"id":"4fc2e6e8-9434-4fa9-831b-4208bc82fd35"}]
这是一个较长的设置和溶液但是,在一张例如几百万个文档的表格上,它确实可以使其更快。
@ kureikain的解决方案可以正常工作,但为什么在进行查询时只有部分UUID? – dalanmiller
@dalanmiller我想使用uuid作为URL参数,但不是整个uuid,因为它很长。在一个SQL世界中,我只会做一个自动增加的整数,但当然重新思考并不是针对该类型的行为进行了精确优化。思考? –