rethinkdb - 嵌套对象更新不会触发 changedFeed 事件
问题描述
我有一个包含字段头像的用户表。该字段是一个对象,例如:
{
"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 ...
});
});
你知道得到我想要的东西的好查询吗?非常感谢 :) !
解决方案
我找到了一个方法:
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 ...
});
});
它很重,但它可以完成工作。
推荐阅读
- javascript - 我们可以在 Highcharts 的 X 轴上有相同的类别名称吗
- python-3.x - 在用户会话期间,我应该在哪里存储从 Microsoft Graph API 获得的个人资料图片?
- json - Laravel 在搜索响应中发送 api JSON
- jquery - 我有什么样的对象?
- maximo-anywhere - 在 Maximo Anywhere 中删除照片
- c - 在c中将结构的内存区域归零
- android - 如何确定资产文件夹中的项目是文件还是目录?
- python - 如何加载自定义数据集以馈送到 CNN?
- ios - 从它的类型创建一个 UIViewController 具体类
- python - Pandas:按时间分组累计,重新采样到整个数据帧