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

二次信任 提交于 2019-12-13 02:57:39

问题


I am trying to append an object into an array in rethink. Here is how I am trying to append it:

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

The error I get is this:

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]',

I also tried the same code about, but removed .default([]), which did not change anything.

I have tried logging out what row('milestones') is and this is the result:

var_15("milestone")

I was expecting to see an array. What else is necessary to add an object to an array? How do I make this work?


回答1:


You need to update document with a document not an array. Your reql should look like this

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

this is because the .append command does not commit data to the database it only returns an in memory modified array



来源:https://stackoverflow.com/questions/47725272/why-cant-i-append-an-object-to-an-array-in-rethinkdb

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!