使用文档操作进行链式RethinkDB过滤

时间:2016-09-23 13:49:54

标签: node.js rethinkdb

我正在尝试使用RethinkDB(NodeJS驱动程序):



const cursor = await r.table('users')
  .filter({ 'username': friendRequest.initiator })
  .getField(friends)
  .append(friendRequest.target)
  .run(conn)




但我收到错误陈述Expected type DATUM but found SEQUENCE

如何首先过滤然后操作文档?

1 个答案:

答案 0 :(得分:1)

r.table('users')
  .filter({ 'username': friendRequest.initiator })

返回数组,但getField仅适用于对象。

正如我所看到的,您希望过滤用户并获取归档“朋友”并向其添加新记录。您应该使用pluck进行此操作,并在结果上使用map之后:

const cursor = await r.table('users')
  .filter({ 'username': friendRequest.initiator })
  .pluck(friends)
  .map(function(row){
     return row(friends).append(friendRequest.target);
  })      
  .run(conn)