Rethinkdb 如果分支评估为 false,则使用现有值
Rethinkdb Use existing value if branch evaluates to false
在rethinkdb中使用分支更新逻辑。我需要根据另一个值是否匹配来更新一个值,然后设置适当的值。如果值相同,则应使用现有值。
r.db('testdb').table('great_table').get(1).update(source => {
return r.branch(source('some_other_id').eq(1), {read: false}, /* use existing value */);
})
尝试了以下方法:
r.db('testdb').table('great_table').get(1).update(source => {
return r.branch(source('some_other_id').eq(1), {read: false}, source('checked'));
})
我尝试此操作时收到的错误是:
{
"deleted": 0 ,
"errors": 1 ,
"first_error": "Inserted value must be an OBJECT (got BOOL): false" ,
"inserted": 0 ,
"replaced": 0 ,
"skipped": 0 ,
"unchanged": 0
}
在您的查询中,您正试图传递 bool
where Rethink expecting object。
因此,您的查询应如下所示(取决于您要在哪个字段中保存 source('checked')
值):
r.db('testdb').table('great_table').get(1).update(source => {
return r.branch(source('some_other_id').eq(1), {read: false}, {read: source('checked')});
})
在rethinkdb中使用分支更新逻辑。我需要根据另一个值是否匹配来更新一个值,然后设置适当的值。如果值相同,则应使用现有值。
r.db('testdb').table('great_table').get(1).update(source => {
return r.branch(source('some_other_id').eq(1), {read: false}, /* use existing value */);
})
尝试了以下方法:
r.db('testdb').table('great_table').get(1).update(source => {
return r.branch(source('some_other_id').eq(1), {read: false}, source('checked'));
})
我尝试此操作时收到的错误是:
{
"deleted": 0 ,
"errors": 1 ,
"first_error": "Inserted value must be an OBJECT (got BOOL): false" ,
"inserted": 0 ,
"replaced": 0 ,
"skipped": 0 ,
"unchanged": 0
}
在您的查询中,您正试图传递 bool
where Rethink expecting object。
因此,您的查询应如下所示(取决于您要在哪个字段中保存 source('checked')
值):
r.db('testdb').table('great_table').get(1).update(source => {
return r.branch(source('some_other_id').eq(1), {read: false}, {read: source('checked')});
})