2
假设我有一个“类别”表,每个类别都有“数据”表中的关联数据,并且它与其他关联的数据表中的“关联”有关联,我想删除一个与它关联的所有类别数据。 目前我在做什么是这样的:在rethinkdb中链接查询
getAllDataIdsFromCategory()
.then(removeAllAssociated)
.then(handleChanges)
.then(removeDatas)
.then(handleChanges)
.then(removeCategory)
.then(handleChanges);
有没有办法来链接这些查询的DB-侧? 我目前的功能是这样的:我不能用r.expr()或r.do(),因为我想根据以前的查询结果做查询
var getAllDataIdsFromCategory =() => {
return r
.table('data')
.getAll(categoryId, { index: 'categoryId' })
.pluck('id').map(r.row('id')).run();
}
var removeAllAssociated = (_dataIds: string[]) => {
dataIds = _dataIds;
return r
.table('associated')
.getAll(dataIds, { index: 'dataId' })
.delete()
.run()
}
var removeDatas =() => {
return r
.table('data')
.getAll(dataIds)
.delete()
.run()
}
通知。 我的方法存在的问题是,它不适用于大量的“数据”,因为我必须将所有的ID都带到客户端,并且在循环中在客户端进行分页似乎是一种解决方法。