首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地图上的机场副业指数

地图上的机场副业指数
EN

Stack Overflow用户
提问于 2018-01-27 22:37:40
回答 1查看 184关注 0票数 2

我有一个关于机场数据库和次要指数的问题。

我有一组学生,每个学生(记录键是StudentId),都有一个由<CourseId ,Grade>组成的映射(bin)。

我只想选择参加特定coursesIds的学生。我该怎么做呢?我应该在地图上添加次要索引吗?使用UDF?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-28 00:45:00

您可以使用两种方法--一种具有辅助索引,另一种不使用(仅使用主索引的键值操作)。

无二次指标的

让我们假设在您的应用程序中有三种类型,每种类型在Aerospike - coursesstudentsroster中都有。课程对象保存有关课程的信息,学生对象保存有关学生的信息。roster对象具有与课程相同的密钥,或者可能是一个复合的课程as \_学期。该课程应该有一个包含学生ID列表的学生。要获得一门课程的学生,您可以获得roster记录,然后将其学生密钥列表转换为针对students的单个批读操作。

当然,您也可以折叠这个,只有两个集合-- coursesstudents,并将课程学生的列表作为一个bin保存在课程对象中。这里不需要多对一的连接,因为您需要使用列表地图复杂数据类型

如果您想在没有辅助索引的情况下执行更复杂的查询,可以将谓词过滤器应用到courses集的扫描上(请参阅使用Java的示例 )。

具有二次索引的

您可以在课程中向学生对象添加一个bin,其值是一个课程ID列表(这意味着您可以很容易地从ID中获取课程对象)。当然,您可以构建一个该列表上的二级索引 ID。要得到学生的课程,你可以通过它的键得到学生的对象,并查看课程内的垃圾桶。要让所有学生都上一门特定的课程,可以对students集中的记录库进行二级索引查询。

您可以将谓词筛选器应用于此辅助索引查询找到的记录,以便根据其他条件进一步筛选学生。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48481268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档