我正在尝试使用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
。
如何首先过滤然后操作文档?
答案 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)