我正在将Excel工作表转换为JSON对象数组,将数据映射到列名,然后将它们插入到RethinkDB中。问题是我需要稍后在数据库中附加那些在其他地方计算的数据。这意味着将新列添加到已存储在数据库中的文档中,然后将数据插入到这些列中。有没有办法做到这一点?
答案 0 :(得分:3)
首先,您需要一种方法以便稍后引用现有文档。 默认情况下,RethinkDB为每个插入的文档生成一个随机主键,除非您明确指定一个。
主键存储在文档的id
字段中。
由于它是随机生成的,因此以后可能很难找到与Excel工作表中给定行对应的文档,因此我建议您插入包含行号作为主键的文档(只需添加{{ 1}} JSON对象中的字段并将其设置为数字值。
然后,为了将新值VAL添加到给定行i中的新列NEWCOL中,您可以使用以下查询:
id
如果该文档中不存在NEWCOL,则只需添加它即可。如果它已经存在,它将被VAL覆盖。
由于RethinkDB是无模式的,因此您通常不需要显式添加新列。如果您仍然喜欢这样做,可以运行此命令在表格中的所有文档上将NEWCOL初始化为r.table(...).get(i).update({"NEWCOL": VAL})
:
null