是否将新列追加到rethinkdb表



我正在将excel工作表转换为JSON对象数组,将数据映射到列名,然后将它们插入RethinkDB。问题是,稍后我需要将数据库中的这些文档附加到其他地方正在计算的数据中。这意味着将新列添加到已经存储在数据库中的文档中,然后将数据插入这些列中。有办法做到这一点吗?

首先,您需要一种稍后引用现有文档的方法。默认情况下,RethinkDB为每个插入的文档生成一个随机主键,除非您明确指定一个主键。

主键存储在文档的字段id中。由于它是随机生成的,以后可能很难在Excel工作表中找到与给定行相对应的文档,因此我建议您插入以行号为主键的文档(只需在JSON对象中放入一个id字段并将其设置为数值即可)。

然后,要将新值VAL添加到给定行i中的新列NEWCOL中,可以使用以下查询:

r.table(...).get(i).update({"NEWCOL": VAL})

如果该文档中不存在NEWCOL,则只需添加它。如果它已经存在,则会被VAL覆盖。

由于RethinkDB是无架构的,因此通常不需要显式添加新列。如果您仍然想这样做,可以在表中的所有文档上运行此命令将NEWCOL初始化为null

r.table(...).update({"NEWCOL": null})

最新更新