问题标签 [rethinkdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
562 浏览

arrays - 如何在 rethinkdb 文档中获取列表元素

如何使用 RQL 从 rethinkdb 文档中获取指定索引处的列表元素?

错误:

0 投票
1 回答
1114 浏览

rethinkdb - 如何在 rethinkdb 中创建复合多索引?

我正在使用带有官方 python 驱动程序的 Rethinkdb 1.10.1。我有一个与一个用户关联的标记事物表:

我想通过user_idand查询tag(例如,通过用户“tawmas”查找所有带有标签“tag”的东西)。从 Rethinkdb 1.10 开始,我可以像这样创建一个多索引:

我的查询将是:

但是,这个查询仍然需要扫描所有带有给定标签的文档,所以我想创建一个基于 user_id 和 tags 字段的复合索引。这样的索引将允许我查询:

文档中没有关于复合多索引的内容。但是,我尝试使用自定义索引函数,通过返回对列表来结合复合索引和多索引的要求["USER_PK", "tag"]

我的第一次尝试是在 python 中:

这使得 python 驱动程序因MemoryError试图解析索引函数而窒息(我猜驱动程序并不真正支持列表推导)。

所以,我转向我的(诚然,生锈的)javascript并想出了这个:

这被服务器拒绝了一个奇怪的例外:rethinkdb.errors.RqlRuntimeError: Could not prove function deterministic. Index functions must be deterministic.

那么,定义复合多索引的正确方法是什么?还是目前不支持的东西?

0 投票
1 回答
2372 浏览

bigdata - RethinkDB 可以处理大型数据集 (TB+) 并用作 OLAP 应用程序的数据库吗?

RethinkDB 能否有效处理大型数据集(即多个 TB 字节)以用作分析应用程序的数据库?

0 投票
2 回答
2322 浏览

node.js - RethinkDB:​​从游标中只获取一条记录

如何使用二级索引从游标中只获取一条记录?

如何只获得一条记录?

0 投票
2 回答
1603 浏览

ruby - RethinkDB 单个请求中的多个查询

我正在尝试在对服务器的单个请求中执行多个 RQL 命令,但我可能会添加没有太大的成功。我试过r.union了,但它只适用于序列。我真正想要的:

有没有办法做到这一点?

谢谢!

0 投票
4 回答
2755 浏览

javascript - rql从javascript中的rethinkdb键列表中获取多个文档

我有一个“人”数据表,它有一个唯一的键“id”。我有一个 id 列表,我想获取我将作为 JSON 数组从客户端发送到服务器的数据。服务以 JSON 数组的形式接收该数据。

现在有没有办法运行一个查询来获取每个 ID 的文档?

或者是我自己解析 id 并构建结果数组,然后将该数组发回的唯一选择。

到目前为止,我已经尝试使用...

  • getAll - 但我无法让它工作,因为它接受动态数量的参数,而且我不知道如何将我的值数组更改为动态数量的参数。

    (例如......我希望能够做如下所示的事情,但我不能)

    我只能这样做...

    /li>
  • expr 和 forEach - 如下所示,但我认为这行不通。

    /li>
0 投票
2 回答
423 浏览

python - Rethinkdb python处理空结果

rethinkb 和 python 处理空结果的最佳技术是什么。我试试这个,但捕捉异常并不令人满意。

如果有人尝试过其他技术,我很感兴趣。谢谢你的帮助。

0 投票
1 回答
77 浏览

rethinkdb - rethinkdb 查询中的非写入替换/更新

我是 rethinkdb 的新手,遇到了简单的麻烦。假设我有以下对象结构:

因此“A”的实例与两个“B”实例保持关系。

我应该在 rethinkdb 中执行什么查询来检索以下响应?

我希望看到 B 的实例而不是它们的 id 作为响应,并且我不希望保存此更改。

0 投票
2 回答
314 浏览

javascript - RethinkDB:​​通过键值对获取文档?

由于Node 上缺乏稳定的 Mongo 驱动程序,我正在评估 RethinkDB 作为 Mongo 的替代品。我已经阅读了http://www.rethinkdb.com/api/javascript/get_all/上的文档,并且有一个非常简单的问题:如何通过键值对获取文档?

get() 的示例只讨论索引。我对索引不感兴趣,而是对其他字段感兴趣。例如,我希望能够做到:

...与我在 Mongo 上使用 collection.find() 的方式大致相同。但这似乎不可能。我究竟做错了什么?以这种方式获取文档不被视为获取吗?

我应该为此使用.filter()吗?

0 投票
1 回答
1542 浏览

javascript - RethinkDB:​​条件更新(仅当特定字段匹配时)?

我知道rethinkDB 的 insert()有一个 upsert 选项。例如,来自文档:

但是说可能存在{superhero: 'Iron Man'}不正确或过时的超级大国的现有记录,我想插入{ superhero: 'Iron Man', superpower: 'Arc Reactor' }或更新任何现有{superhero: 'Iron Man'}记录?

简而言之:我怎样才能 upsert 以便只有在特定字段匹配时才更新现有记录?

编辑:似乎这是用 .replace() 完成的:

这是replace() 文档中的重要内容:

如果您对不在表中的键进行点替换,则可以插入新文档

我不确定“点替换”是什么意思——但我认为它只是意味着替换。

然而在测试中,“mergeOrCreate”函数被赋予另一个函数,而不是一个实际的文档或游标,作为参数。