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

Why can't I append an object to an array in rethinkdb?

我正在尝试将对象附加到 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")

我期待看到一个数组。将对象添加到数组还需要什么?我该怎么做?

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

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

这是因为 .append 命令不会将数据提交到数据库,它只是 returns 内存中修改的数组