如何在Rethinkdb中一次提取多个查询

时间:2014-11-09 12:05:24

标签: rethinkdb

我想做类似的事情:

var tab = r.db("test").table("test"); all =[ tab.getAll('1').fitler({'hidden': false}).limit(1), tab.getAll('2').fitler('hidden': false}).limit(1), tab.getAll('3').fitler('hidden': false}).limit(1), ]

但是在运行此查询时,我得到了:

Expected type DATUM but found SELECTION:

1 个答案:

答案 0 :(得分:2)

通常,添加.coerceTo('array')可以解决“预期类型DATUM但发现SELECTION”错误:

var tab = r.db("test").table("test");
all =[
  tab.getAll('1').filter({'hidden': false}).limit(1).coerceTo('array'),
  tab.getAll('2').filter({'hidden': false}).limit(1).coerceTo('array'),
  tab.getAll('3').filter({'hidden': false}).limit(1).coerceTo('array')
]

但在这种特定情况下,您可以将.limit(1)替换为.nth(0)

var tab = r.db("test").table("test");
all =[
  tab.getAll('1').filter({'hidden': false}).nth(0),
  tab.getAll('2').filter({'hidden': false}).nth(0),
  tab.getAll('3').filter({'hidden': false}).nth(0)
]