更新嵌套文档数组rethinkdb

时间:2017-07-10 11:45:55

标签: rethinkdb rethinkdb-javascript

我有一个这样的文档架构:

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

我忘了在插入数据库时​​为每个帖子创建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()})
  }
)

而是此查询返回所有具有id的帖子,但实际上并未在数据库中更新。我尝试使用forEach而不是map函数,但这不起作用

1 个答案:

答案 0 :(得分:1)

经过大量的调整和挫折后,我发现了它:

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})