将新列追加到 rethinkdb table?
Append new column to rethinkdb table?
我正在将 excel sheet 转换为 JSON 对象数组,将数据映射到列名,然后将它们插入到 RethinkDB 中。问题是我稍后需要将数据库中的这些文档附加到在别处计算的数据中。这意味着向已存储在数据库中的文档添加新列,然后将数据插入这些列。有什么办法吗?
首先,您需要一种稍后引用现有文档的方法。
默认情况下,除非您明确指定,否则 RethinkDB 会为每个插入的文档生成一个随机主键。
主键存储在文档的 id
字段中。
由于它是随机生成的,以后可能很难在 Excel sheet 中找到与给定行对应的文档,因此我建议您插入文档时将行号作为主键(只是在 JSON 对象中放置一个 id
字段并将其设置为数字值)。
然后要将新值 VAL 添加到给定行 i 的新列 NEWCOL 中,您可以使用以下查询:
r.table(...).get(i).update({"NEWCOL": VAL})
如果该文档中不存在 NEWCOL,这将简单地添加它。如果它已经存在,它将被 VAL 覆盖。
由于 RethinkDB 是无架构的,因此您通常不需要显式添加新列。如果您仍想这样做,您可以 运行 此命令将 table:
中所有文档的 NEWCOL 初始化为 null
r.table(...).update({"NEWCOL": null})
我正在将 excel sheet 转换为 JSON 对象数组,将数据映射到列名,然后将它们插入到 RethinkDB 中。问题是我稍后需要将数据库中的这些文档附加到在别处计算的数据中。这意味着向已存储在数据库中的文档添加新列,然后将数据插入这些列。有什么办法吗?
首先,您需要一种稍后引用现有文档的方法。 默认情况下,除非您明确指定,否则 RethinkDB 会为每个插入的文档生成一个随机主键。
主键存储在文档的 id
字段中。
由于它是随机生成的,以后可能很难在 Excel sheet 中找到与给定行对应的文档,因此我建议您插入文档时将行号作为主键(只是在 JSON 对象中放置一个 id
字段并将其设置为数字值)。
然后要将新值 VAL 添加到给定行 i 的新列 NEWCOL 中,您可以使用以下查询:
r.table(...).get(i).update({"NEWCOL": VAL})
如果该文档中不存在 NEWCOL,这将简单地添加它。如果它已经存在,它将被 VAL 覆盖。
由于 RethinkDB 是无架构的,因此您通常不需要显式添加新列。如果您仍想这样做,您可以 运行 此命令将 table:
中所有文档的 NEWCOL 初始化为null
r.table(...).update({"NEWCOL": null})