1

我想从 0 到多个项目的集合中随机选择一个项目,如果它存在,请更新特定字段。如果该项目不存在,我希望该函数不执行更新并返回 null。

我当前的 REQL 代码:

r.db('test').table('test')
.filter({
    something: true
}).sample(1).nth(0).default(null).update(function(thing) {
    return r.branch(
        thing.ne(null),
        thing.without('reserve'),
        null
    )
}, {
    returnChanges: true
});

这总是返回错误:Expected type SELECTION but found DATUM我不确定如何用 REQL 解决这个问题。

4

1 回答 1

1

你可能想这样写:

r.db('test').table('test').filter({something: true}).sample(1).replace(function(thing) {
    return thing.without('reserve');
}, {returnChanges: true});

这将为您返回一个写入摘要对象,您可以使用该对象来确定是否实际发生了替换。

于 2016-06-24T08:42:00.303 回答