如果我有一个具有多个辅助索引的表,如何生成一个交集?例如,如果我有一个用户表,其中包含"firstName“和"lastName”的辅助索引,并且希望所有用户命名为'Bob‘:
r.table('users').getAll('Bob', {index: 'firstName'}).XXXX('Smith', {index: 'lastName'})我可以使用过滤器,但我的理解是这样做会慢一些:
r.table('users').getAll('Bob', {index: 'firstName'}).filter({'lastName': 'Smith'})或者,我可以用复合索引进行交叉吗?
发布于 2013-10-29 17:16:21
正确的方法是使用复合索引。例如:
table.index_create("fullName", lambda doc: [doc["firstName"], doc["lastName"])
table.getAll(["Bob", "Smith"])当前不能在单个查询中使用多个索引。这是一种重新思考未来可能支持的东西,但现在并非如此。
发布于 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)
https://stackoverflow.com/questions/19656785
复制相似问题