问题标签 [rethinkdb-javascript]

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 投票
1 回答
174 浏览

join - 自我加入 rethinkdb

我在rethinkdb中有一个如下表(实现树结构):

我想写一个查询,给我以下输出:

为此,我写了以下内容:

此查询返回除根节点之外的所有行。我如何得到它,而且我想知道这是否是最有效的方法,因为我可能也必须在非常复杂的场景中这样做。

0 投票
1 回答
317 浏览

rethinkdb - 在 rethinkdb 中链接查询

假设我有一个“类别”表,每个类别在“数据”表中都有关联数据,并且在其他“关联”表中有关联数据,我想删除一个包含所有关联数据的类别。我目前正在做的是这样的:

有没有办法在数据库端链接这些查询?我的功能目前看起来像这样:

请注意,我不能使用 r.expr() 或 r.do() 因为我想根据前一个查询的结果进行查询。我的方法的问题在于它不适用于大量“数据”,因为我必须将所有 id 带到客户端,并且在客户端循环为它进行分页似乎是一种解决方法。

0 投票
1 回答
80 浏览

rethinkdb - 使用 RethinkDB 从压缩的 changefeed 事件中获取数组

我有一个简单的数据库,可以在其中插入消息。我使用带有 squash 选项的 change() 方法每 10 秒获取一次新消息:

我想每 10 秒获取一个新消息数组。我知道这个游标的输出是无限的。
有没有办法通过检测光标将阻塞直到更多元素可用的时刻来获取数组?(或任何其他方式)

谢谢

0 投票
1 回答
732 浏览

rethinkdb - RethinkDB:​​阵列上的实时更改,仅返回新附加的

简介:我正在使用 RethinkDB 的更改提要来查看特定文档(而不是整个表)的更改。每条记录如下所示:

我有一个进程将项目附加到反馈数组,另一个进程需要观察反馈数组的变化......然后做一些事情(具体来说,只广播通过 websockets附加到反馈的最后一个项目)。我已经将它连接起来,以便它监视整个文档的更新 - 但是,它需要接收完整的文档,然后只获取反馈数组中的最后一项。这感觉太重了,当我需要回来的只是添加的最后一件事时。

用于更新文档的当前代码:

^ 这将在一分钟左右的时间内运行多次,将最新消息添加到“反馈”。

观察变化:


最后,这是一个问题(实际上是两部分):

1:当我更新文档(添加到反馈)时,我是否必须update在整个文档上运行(如我上面的代码),还是可以简单地附加到反馈数组并完成它?

2:我在上面做的方式(接收整个文档并从反馈数组中提取最后一个元素)是唯一的方法吗?或者我可以做类似的事情:

0 投票
1 回答
345 浏览

database - 在 RethinkDB 数据库中隔离客户

我正在寻找一种策略来在具有数据隔离的客户之间实现共享 RethinkDB 集群。

我希望有多个客户使用共享的 RethinkDB 集群,但我不确定如何强制执行数据分离。客户的请求不可信,但他们应该可以使用 RethinkDB API 完全访问自己的数据。

它看起来像是多租户数据库的经典案例(我不确定),但无论如何我都找不到关于如何使用 RethinkDB 做到这一点的足够信息。

另一个想法:也许我也可以制作一个包装器并在每个表前面加上一个 customerID,但他们能绕过它吗?有没有办法在查询的其余部分做类似的事情r.db('customerID')不能改变?这是否取决于特定的驱动程序?

如何隔离 RethinkDB 中的客户?

注意:我打算使用https://github.com/apa512/clj-rethinkdb以防万一,但我也接受使用 JavaScript 的任何答案。

0 投票
1 回答
939 浏览

rethinkdb - 重新思考数据库跨集群复制

我在 3 个不同的地理位置有 3 个不同的客户群。

我需要用 3 个不同的集群配置 Rethinkdb,并在(插入、更新和删除)之间复制数据。我不想使用分片,只有复制。

如果可能,我没有在文档中找到。

我没有在文档中找到如何配置多集群复制。

任何帮助表示赞赏。

0 投票
2 回答
893 浏览

rethinkdb - RethinkDB 最大文件大小附件 (BLOB)

我在文档中发现 RethinkDB 可以存储二进制文件 (BLOB)。

这很棒 !

我有一个 ECM 应用程序,需要存储 50.000.000 个文件。(从 8K 到 1GB)。

我需要知道 RethinkDB 中的最大文件大小是多少?性能会不会有些问题?RethinkDB 将如何将这些文件存储在磁盘上?是否有任何开销或内存问题?

感谢任何帮助。

0 投票
1 回答
277 浏览

rethinkdb - 使用 Rethinkdb 进行多数据中心复制

我在两个不同的地理位置(alfa1 和 alfa2)有两台服务器。

r.tableCreate('dados', {shards:1, replicas:{alfa1:1, alfa2:1}, primaryReplicaTag:'alfa1'})

我需要能够为两台服务器写入,但是当我尝试关闭 alfa1 并写入 alfa2 时,rethinkdb 只允许读取:表 test.dados 可用于过时的读取,但不能用于最新的读取或写入。

我需要一种为所有副本写入的方法,而不仅仅是主要副本。

这可能吗 ?rethinkdb 是否允许多数据中心复制?

我认为多数据中心复制需要允许两个数据中心的写入。

我试图删除“primaryReplicaTag”,但系统不接受!

欢迎任何帮助!

0 投票
1 回答
278 浏览

rethinkdb - 如何设置 rethinkdb 代理服务器

我们有两台客户端机器,我们如何使用代理服务器连接它们?正如您之前所说:“要在客户端上启动 RethinkDB 代理:rethinkdb proxy -j -j ...”只有客户端可以以这种方式连接,因为端口已经在使用中。

0 投票
3 回答
1956 浏览

node.js - RethinkDB Transaction 到多个文档/表

我需要在一个事务中更新 2 个表。

在当前版本中,RethinkDB 不支持开箱即用的事务。那么,我该如何实现呢?

我可以通过两种方式进行更新:

  1. 更新第一张桌子。如果成功-> 更新第二个表。
  2. 异步更新第二个表。

但是,当 2 次更新中的 1 次成功完成,但另一个没有时,我该如何解决?是的,如果发生错误,我可以检查更新结果并恢复更新。但无论如何,当应用程序发生某些事情(失去与 Rethink 的连接,或者只是脚本崩溃)时,可能存在这样的情况,但两个更新之一已完成。因此,我的数据库将处于不一致状态。而且没有办法解决这个问题。

那么,是否可以在 nodejs 中为 RethinkDB 模拟事务行为?