我检查了其他相关问题,特别是 this one 。但是既然已经回答了,似乎重新考虑了对嵌套字段 has changed 的处理。
我正在尝试修改嵌套数组“amy”和“joe”:
{
"id": "blah" ,
"schedules": {
"amy": ['some', 'stuff', 'here'],
"joe": ['more', 'stuff', 'here']
}
}
我尝试了各种不同的方法,但我无法在一次调用数据库时让它工作。相反,我必须使用一次调用获取现有数组:
r.table('whatevs').get('blah').pluck({schedules: {amy: true}})
这给了我看起来像的东西:
"schedules": {
"amy": ['some', 'stuff', 'here']
}
所以我拉出 schedules.amy 并修改数组然后......
r.table('whatevs').get('blah').update({schedules: {amy: [modified_array]}})...
我想要做的是使用 .difference() 和 .append() 通过单个查询修改数组。现在似乎这是可能的,但无论我尝试什么语法,它都会被拒绝。
最佳答案
如果你想更新一个数组的单个键,你可以这样做:
r.table('whateves').get('blah').update(function(row) {
return {schedules: {amy: row('schedules')('amy').append('new_value')}};
});
关于javascript - 如何使用 rethinkdb javascript 驱动程序更新嵌套数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31525692/