首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何交叉多个辅助索引查询

如何交叉多个辅助索引查询
EN

Stack Overflow用户
提问于 2013-10-29 11:18:21
回答 2查看 946关注 0票数 1

如果我有一个具有多个辅助索引的表,如何生成一个交集?例如,如果我有一个用户表,其中包含"firstName“和"lastName”的辅助索引,并且希望所有用户命名为'Bob‘:

代码语言:javascript
复制
r.table('users').getAll('Bob', {index: 'firstName'}).XXXX('Smith', {index: 'lastName'})

我可以使用过滤器,但我的理解是这样做会慢一些:

代码语言:javascript
复制
r.table('users').getAll('Bob', {index: 'firstName'}).filter({'lastName': 'Smith'})

或者,我可以用复合索引进行交叉吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-29 17:16:21

正确的方法是使用复合索引。例如:

代码语言:javascript
复制
table.index_create("fullName", lambda doc: [doc["firstName"], doc["lastName"])
table.getAll(["Bob", "Smith"])

当前不能在单个查询中使用多个索引。这是一种重新思考未来可能支持的东西,但现在并非如此。

票数 1
EN

Stack Overflow用户

发布于 2016-04-15 14:41:14

正确的更新方法是基于first_name和last_name属性创建复合辅助索引。用JS:r.table("users").indexCreate( "full_name", [r.row("last_name"), r.row("first_name")] ).run(conn, callback)更新的示例

然后,您的查询将类似于获取名为Smith而名为John的所有用户。r.table("users").getAll(["Smith", "John"], {index: "full_name"}).run(conn, callback)

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

https://stackoverflow.com/questions/19656785

复制
相关文章

相似问题

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