更新嵌套文档数组 rethinkdb

updating an array of nested documents rethinkdb

我有这样的文档架构:

{
"name":"",
"type":"",
"posts":[
{
"url":"",
"content":"",
...
},
{
"url":"",
"content":"",
...
}
...
]
}...

我忘记在插入数据库时​​为每个 post 创建 ID。所以我正在尝试为此创建一个查询:

r.db('test').table('crawlerNovels').filter(function (x){
  return x.keys().contains('chapters')
}).map(function (x){
  return x('chapters')
}).map(
  function(x){
   return x.merge({id:r.uuid()})
  }
)

而不是此查询 return 所有 post 具有 id 但实际上并未在数据库中更新。我尝试在最后使用 forEach 而不是 map 函数这不起作用

经过大量的调整和挫折,我想通了:

r.db('test').table('crawlerNovels').filter(function (x){
  return x.keys().contains('chapters')
}).update(function(novel){
  return {"chapters":novel('chapters').map( 
    function(chapter){
    return chapter.merge({"id":r.uuid()})
  })}
},{nonAtomic:true})