小编Ron*_*onZ的帖子

在rethinkdb中链接查询

假设我有一个"类别"表,每个类别在"数据"表中都有关联的数据,并且它在"关联"的其他表中有相关​​数据,我想删除一个包含所有相关数据的类别.我目前正在做的是这样的:

getAllDataIdsFromCategory()
        .then(removeAllAssociated)
        .then(handleChanges)
        .then(removeDatas)
        .then(handleChanges)
        .then(removeCategory)
        .then(handleChanges);
Run Code Online (Sandbox Code Playgroud)

有没有办法在db端链接这些查询?我的功能目前看起来像这样:

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()
    }
Run Code Online (Sandbox Code Playgroud)

请注意,我不能使用r.expr()或r.do(),因为我想根据前一个查询的结果进行查询.我的方法的问题是它不适用于大量的"数据",因为我必须将所有的id带到客户端,并且在循环中在客户端进行分页似乎是一种解决方法.

rethinkdb rethinkdb-javascript

2
推荐指数
1
解决办法
291
查看次数

标签 统计

rethinkdb ×1

rethinkdb-javascript ×1