假设我有表(带有示例数据):
story
{id: 1, name: 'First Story', tags: ['plants', 'flowers']}
{id: 1, name: 'Second Story', tags: ['flowers', 'wedding']}
tag
{id: 'plants'}
{id: 'flowers'}
{id: 'weddings'}
故事表在标签字段上有一个多索引。
现在,我将如何进行查询,从而产生每个标签所具有的故事数量(因此可以将其显示为标签云)。例如:
{"plants": 1, "flowers": 2, "wedding": 1}
或者它可以采用以下格式:
[{id: "plants", count: 1}, {id: "flowers", count: 2}, {id: "wedding", count: 1}]
并以高效的方式进行,其中包含数十万个故事和数百个标签的表格可以快速完成查询?
答案 0 :(得分:3)
r.table("story").indexCreate("tags", {multi: true}).run(...)
r.table("story").group({index: "tags"}).count().run(...)
如果你想美化小组/计数的结果,你可以做
r.table("story").group({index: "tags"}).count().ungroup().map(function(result) {
return r.object(result("group"), result("reduction"))
})