如何连接具有 ID 数组的表

2023-11-25

尝试使用此示例来加入 ID 数组:https://github.com/rethinkdb/rethinkdb/issues/1533#issuecomment-26112118

存储表片段

{ 
  "storeID": "80362c86-94cc-4be3-b2b0-2607901804dd",
  "locations": [
    "5fa96762-f0a9-41f2-a6c1-1335185f193d",
    "80362c86-94cc-4be3-b2b0-2607901804dd"
  ]
}

位置表片段

{
  "lat": 125.231345,
  "lng": 44.23123,
  "id": "80362c86-94cc-4be3-b2b0-2607901804dd"
}

我想选择商店并加入他们的商店位置。

来自 ReThinkDB 贡献者的原始示例:

r.table("blog_posts")
.concat_map(lambda x: x["comment_ids"].map(lambda y: x.merge("comment_id" : y)))
.eq_join("comment_id", r.table("comments"))

我尝试转换为JS

r.table("stores")
 .concatMap((function(x){ 
   return x("locations").map((function(y){ 
     return x("locations").add(y);
   })) 
}))
.eqJoin("locations", r.table("locations"))

Result

RqlRuntimeError: Expected type ARRAY but found STRING


您错误地使用了 concatMap,这就是您希望查询的第一部分的内容。

r.table("stores")
 .concatMap(function (x) {
   return x("locations");
 })

尝试运行它,它应该给你:

["5fa96762-...", "80362c86-...", ...]

现在我们需要将其连接到另一个表。要将 id 数组连接到表中,您可以使用 eqjoin,如下所示:

array.eqJoin(function (row) { return row; }, table)

这里有更多详细信息:rql 从 javascript 中的键 rethinkdb 列表中获取多个文档.

把它们放在一起我们得到:

r.table("stores")
 .concatMap(function (x) {
   return x("locations")
 })
 .eqJoin(function (i) { return i; }, r.table("locations"))

要从商店取回文件:

r.table("stores")
 .concatMap(function (x) {
   return x("locations").map(function (loc) {
      return x.merge({locations: loc});
   });
 })
 .eqJoin("locations", r.table("locations"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何连接具有 ID 数组的表 的相关文章

随机推荐

  • iOS 8 中的 shouldAutorotate 行为

    我发现 7 1 和 8 之间有一个小的行为变化UIViewController shouldAutorotate方法 苹果查看控制器编程指南指出在执行任何自动旋转之前调用此方法 但是我注意到 当我简单地禁用 shouldAutorotate
  • 与主管一起运行 celeryd_multi

    我正在与 djcelery 和主管一起工作 我正在与主管一起运行芹菜 一切正常 一旦我意识到我需要将其更改为芹菜多 一切都崩溃了 如果我在终端中运行 celeryd multi 它可以工作 但总是在后台运行 就像主管需要在出现问题的前台运行
  • 在 CustomUIView 中重写 init() 会导致应用程序崩溃(EXC_BAD ACCESS)

    我正在尝试在 Swift 中子类化 UIView 然而 当调用初始化程序时 应用程序崩溃 EXC BAD ACCESS 这是班级 class CustomActionSheet UIView private var cancelButton
  • 如何使用 Selenium WebDriver 获取所有链接并一一单击这些链接

    我正在使用 Selenium WebDriver 和 java 我正在从网页中获取所有链接并尝试一一单击每个链接 我收到以下错误 错误 org openqa selenium StaleElementReferenceException 在
  • 分而治之,动态规划和贪心算法!

    当我遇到最优子结构的问题并且没有子问题共享子子问题时 我可以使用分治算法来解决它吗 但是当子问题共享子子问题 重叠子问题 时 我可以使用动态规划来解决问题吗 它是否正确 贪心算法与动态规划有何相似之处 当我遇到最优问题时 子结构且无子问题股
  • 如何在 RxJava 中处理 onError。我收到“OnErrorNotImplementedException”

    在我的应用程序中 我使用 ReactiveLocationProvider 库 link 我在 onCreate 方法中订阅更新 当设备在线时它工作正常 但如果我关闭 WiFi 并等待下一个后台位置更新设备 则会出现 OnErrorNotI
  • 尝试让 log4net 与 PowerShell 一起工作(混合使用 log4net 配置文件)

    我一直在努力让 log4net 与 PowerShell 一起使用 我有以下 PowerShell 代码 它使用配置文件拉入 log4net 然后尝试创建一个简单的日志文件条目 但出现错误 Clear History Clear Host
  • 如何在 Gitlab CI 中使用 Dockerfile

    将 gitlab ci 用于我的节点 反应应用程序 我正在尝试使用phusion passenger nodejs作为基础 docker 镜像 我可以在 gitlab ci yml 中轻松指定这一点 image phusion passen
  • 解释 bash 中数组长度的 ${#arrayname[@]} 语法?

    我知道可以通过以下方式获取 bash 中数组的长度 arrayname 我的问题是 这只是我必须记住的东西 还是可以将此语法分解为可以理解的部分 例如 什么是 符号意味着人们期望在哪里找到索引 为什么 在变量引用的开头意味着获取变量值的长度
  • Java:消除死代码

    我想知道Java如何处理以下情况 假设我有一个名为 Debug 的类 它看起来像这样 public class Debug private static final boolean isAssertEnabled true public s
  • 如何查找内核模块中的物理和逻辑核心数?

    Linux 中是否有内核函数可以返回物理核心的数量和 正在运行内核模块的逻辑核心 在超线程的情况下 看看最后include linux smp h smp processor id 给出当前正在执行的 CPU 的编号 get cpu 会做
  • 使用 PHP 在 CSV 文件中写入逗号

    我正在发送一个 csv 文件作为标题 并且我想使用逗号 不是为了分隔 只是为了使用 我该怎么做 我正在使用 PHP 但我无法使用fputcsv因为我将其作为标题发送 只需使用 value 围绕着它 一切都会好起来的
  • 如何使用邮递员将请求传递给 sagemaker

    我已经在 sagemaker 上训练了一个模型并创建了端点 我正在尝试使用邮递员调用端点 但是在训练模型时甚至之后 我没有为训练数据指定任何标题 我不知道如何在向 sagemaker 发送发布请求时创建有效负载 以下是调用快速入门指南中创建
  • 获取对象的活动引用

    我正在寻找一个托管 非托管 API 它允许我找到哪些对象引用另一个对象 并可能阻止它被垃圾收集 这样的 API 可能如下所示 var foo new Foo var bar new Bar bar Foo foo var reference
  • 在 Jenkins CI 上打开 Excel

    我正在 Windows 7 上工作 作为会话 1 登录 我的 Jenkins CI 在会话 0 中作为 Windows 服务运行 我的问题是 我想在会话 0 中通过 Jenkins CI 打开一个 Excel 文件 但想在会话 1 上显示其
  • 有没有办法从 Android 中的文件加载并部分绘制位图?

    假设我在磁盘上有一个有点大 即不适合大多数手机的内存 的位图 我只想以不缩放的方式在屏幕上绘制它的一部分 即inSampleSize 1 有没有办法只加载 绘制我想要的部分Rect指定区域而不加载整个位图内容 我非常有信心这是可能的 因为您
  • 在 Node.js 中导入:错误“必须使用导入来加载 ES 模块”[重复]

    这个问题在这里已经有答案了 我正在尝试导入myArr from hello js into index js 但是我得到一个错误 Error ERR REQUIRE ESM Must use import to load ES Module
  • 对象数据源或代码隐藏:哪个更好?

    我知道这是一个可能引起很多争论的主题 但我想知道人们如何看待使用对象数据源的各种优点和缺点 我现在正在和另一位程序员一起做一个项目 他的经验和舒适度都植根于经典的 ASP 我不确定该采用哪种方式a 快速完成工作 b 以最少的麻烦完成工作 我
  • 使用android studio 3.1.2后显示错误=2,没有这样的文件或目录

    安装后Ubuntu 18在配备 i7 和 24GB 内存的新台式机中 我们尝试移动我们的android studio以 zip 格式项目到新电脑 我们的项目在旧电脑上运行良好 但在新电脑上显示错误 org gradle api tasks
  • 如何连接具有 ID 数组的表

    尝试使用此示例来加入 ID 数组 https github com rethinkdb rethinkdb issues 1533 issuecomment 26112118 存储表片段 storeID 80362c86 94cc 4be3