我有一个表包含字段头像的用户。该字段是一个对象,例如:
{
"file": {
"identifier": "fafa2570-d642-4c78-912a-f275b70abed9" ,
"mimeType": "image/jpeg" ,
"name": "fafa2570-d642-4c78-912a-f275b70abed9.jpg"
}
}
默认情况下,当我创建用户时,字段头像不存在。 如果字段头像更新,我无法触发操作。我试过了:
rethinkdb.table(USER_TABLE_NAME)
.changes()
.filter(rethinkdb.row('old_val')('avatar').ne(rethinkdb.row('new_val')('avatar')))
.run((err, change) => {
change.each((changeErr, { new_val }) => {
// do my actions here ...
});
});
你知道得到我想要的好查询吗? 非常感谢:)!
答案 0 :(得分:0)
我找到了一种方法:
rethinkdb.table(USER_TABLE_NAME)
.changes()
.filter(
(
rethinkdb.row('old_val').hasFields({ avatar: true }).not()
.and(rethinkdb.row('new_val').hasFields({ avatar: true }))
)
.or(
rethinkdb.row('old_val').hasFields({ avatar: true })
.and(rethinkdb.row('new_val').hasFields({ avatar: true }).not())
)
.or(
rethinkdb.row('old_val')('avatar')('file')('identifier')
.ne(rethinkdb.row('new_val')('avatar')('file')('identifier'))
)
)
.run((err, change) => {
change.each((changeErr, { new_val }) => {
// do my actions here ...
});
});
这很重,但它确实起作用。