问题标签 [reql]

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 回答
164 浏览

rethinkdb - 应该如何组合复杂的 ReQL 查询?

是否有任何有助于编写复杂 ReQL 查询的最佳实践或 ReQL 功能?

为了说明这一点,想象一张fruits桌子。每个文档具有以下结构。

如果我们想检索所有绿色水果,我们可以使用以下查询。

但是,在更复杂的情况下,我们可能希望使用各种复杂的命令组合。在这种情况下,可以为每种情况编写定制查询,但这可能难以维护,并且可能违反不要重复自己 (DRY) 原则。相反,我们可能希望编写可以链接自定义命令的定制查询,从而允许以模块化方式组合复杂的查询。这可能采用以下形式。

可以是一个函数,component它接受命令链中的最后一个实体作为其参数并返回一些内容,如下所示。

这与其说是一个功能提议,不如说是对复杂查询问题的说明,尽管这样一个功能在直觉上看起来确实很有用。

就我个人而言,我自己解决这个问题的努力涉及到创建一个compose效用函数。它接受一个函数数组作为它的主要参数。每个函数都被调用,传递了查询链的一部分,并期望返回查询链的修改版本。一旦迭代完成,composition就会返回一个查询组件。这可以在下面查看。

很高兴知道这样的事情是否存在,是否有处理此类情况的最佳实践,或者这是否是 ReQL 可以从改进中受益的领域。

0 投票
1 回答
37 浏览

javascript - 使用 REQL 将数组转换为对象

我正在寻找将数组转换为对象的最简洁方法,同时提取用作每个结果的键的字段。

这是我找到的解决方案,我想知道是否有更简单的方法。

谢谢!


例子

0 投票
1 回答
66 浏览

javascript - Rethinkdb Append 说属性不存在

我一直在用 Rethinkdb 创建一个数据库。这是我的数据库格式:

然后我尝试在 Array 1 中附加:

但是当我这样做时,我得到一个错误,上面写着:“errors”:1,“first_error”:“Array1对象中没有属性:。但是这个属性显然存在于数据库中。请帮助:)

0 投票
1 回答
152 浏览

rethinkdb - 如何在数组上使用 ReQL 过滤器和匹配命令

我在 rethinkdb 中有一个表,其中每一行都有以下结构 -

我正在运行一个查询来过滤这样的 service2 对象

但这并没有返回任何东西:No results were returned for this query

谁能说出为什么会这样?

0 投票
1 回答
307 浏览

rethinkdb - RethinkDB:​​检查数组中的对象是否存在并替换它

我有这个 JSON 文档:

当用户想要关注作者时,我想编写一个查询来检查该作者是否已被关注,检查 id 以及是否未将新关注的作者附加到数组中。

现在我每次创建一个新条目。这是我的查询:

0 投票
1 回答
105 浏览

rethinkdb - 如何向 RethinkDB 中的 Filter 内部函数发送多个参数

您好,我需要以某种方式传递过滤器方法 2 个或更多参数。就像是r.table("N/A").filter(function(arg1,arg2){..code here})

我需要它来做以下事情:

我有一个如下的数据结构:

我想获取所有客户端的列表,对于此列表中的每个客户端,我希望他的属性与其他尊重过滤谓词的客户端合并。我需要将多个参数传递给过滤函数

我失败的尝试:

0 投票
1 回答
36 浏览

.net - 程序方法同步工作,但存在状态码 -1 用于异步对应

我正在使用 rethinkdb,我正在尝试删除表中的所有记录。使用Runon 查询时,查询工作没有问题,因此是同步的。当使用RunAsync程序退出时status code -1

该程序不会抛出任何异常,所以我应该如何找出它存在的原因?

0 投票
2 回答
344 浏览

node.js - rethinkdb:如何按两个属性排序并在其中一个属性之间使用

我们有一个 rethinkdb,里面有票。它们有一个 createdAt 时间戳(以毫秒为单位)和一个优先级属性。

例如

我们现在有以下问题。我们想要一个执行两个 orderBy 的查询……第一个是 orderBy “priority”,也是 “createdAt”。因此,给定过滤器和时间跨度,它应该返回具有最高优先级的票证,并且在优先级内最旧的票证应该在最前面。

我们尝试建立一个具有优先级和 createdAt 的复合索引。这确实有效,但是 .between 没有按预期在该索引上工作。

使用查询:

在我们看来,应该首先按优先级排序,然后按 createdAt 和 .between 进行排序,我们将忽略优先级(因为 .minval 和 .maxval),只获取 timeFrom 和 timeTo 之间的所有票证。

Buuuut 还返回了 createdAt 小于 timeFrom 的票证。所以这不像我们计划的那样工作。就像这样的“问题”:RethinkDB Compound Index Weirdness Using Between

但是我们想不出另一种方法来解决这个问题。

0 投票
1 回答
528 浏览

c# - 如何在 RethinkDB 中更新或插入项目?

我正在尝试更新或插入(如果它不存在)数据库中的一个元素,但到目前为止,我还没有找到任何关于如何使用C# ApiUpdateFilter提供的示例。(C# Api,而不是 RethinkDB Reql)。

链接到 api:https ://github.com/bchavez/RethinkDb.Driver

谁能帮我 ?

POCO

这将是插入请求:

如果不存在,我需要playerRequest.data根据playerId 或插入更新。Player

我已经搜索了 Api,但到目前为止还没有成功。

PS我已经尝试安装 Linq to ReQL 扩展,但方法接缝不可用。

0 投票
1 回答
86 浏览

rethinkdb - ReQL 等效于 Select * from table where id in ()

我是 RethinkDB 的新手,我有一个对象 id 数组,我想从 id 属于该数组的表中获取对象。

SQL查询将是 -

我尝试在 myREQL 控制台中进行以下操作-

它给了我错误-

我提到了这个https://rethinkdb.com/api/python/contains/

我究竟做错了什么?