为什么我不能在rethinkdb中将对象追加到数组中?

时间:2017-12-09 04:18:35

标签: rethinkdb rethinkdb-javascript

我正在尝试将对象追加到rethink中的数组中。以下是我试图追加它的方法:

rethink.table('shifts')
        .get(shiftId)
        .update(row => row("milestones").default([]).append({
            dateAchieved: "2017-01-01",
            phaseType: "TEST"
        })).run(rethinkConnection)

我得到的错误是:

first_error: 'Inserted value must be an OBJECT (got ARRAY):\n[\n\t{\n\t\t"dateAchieved":\t"2017-01-01",\n\t\t"phaseType":\t"TEST"\n\t}\n]',

我也尝试了相同的代码,但删除了.default([]),但没有改变任何内容。

我已经尝试注销row('milestones')是什么,这就是结果:

var_15("milestone")

我期待看到一个阵列。将对象添加到数组还需要什么?我如何使这项工作?

1 个答案:

答案 0 :(得分:2)

您需要使用不是数组的文档更新文档。你的reql应该是这样的

rethink.table('shifts')
  .get(shiftId)
  .update({
    milestones: rethink.row('milestones').append({
      dateAchieved: "2017-01-01",
      phaseType: "TEST"
    })
  })
  .run(rethinkConnection)

这是因为.append命令不向数据库提交数据,它只返回内存修改后的数组