首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阿兰戈布。在Foxx服务中使用游标发回数据

阿兰戈布。在Foxx服务中使用游标发回数据
EN

Stack Overflow用户
提问于 2018-02-05 22:38:10
回答 1查看 163关注 0票数 2

在foxx服务中,通常使用

代码语言:javascript
复制
res.send("Whatever");

但是在我要发回的数据量很大的情况下,我想模仿游标的行为(在几个更小的块中发送),我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-22 21:57:31

您将希望使用Query Cursors

如果您使用的是Arangojs,那么here is that documentation

查询所有数据:

代码语言:javascript
复制
const cursor = await db._query('FOR x IN 1..5 RETURN x');
const result = await cursor.all()
// result is an array containing the entire query result
assert.deepEqual(result, [1, 2, 3, 4, 5]);
assert.equal(cursor.hasNext(), false);

或者一个接一个:

代码语言:javascript
复制
// query result list: [1, 2, 3, 4, 5]
const val = await cursor.next();
assert.equal(val, 1);
// remaining result list: [2, 3, 4, 5]

const val2 = await cursor.next();
assert.equal(val2, 2);
// remaining result list: [3, 4, 5]

对于Foxx end,您将需要接受并使用参数来控制分页。使用LIMIT功能:

代码语言:javascript
复制
router.get('/entries/:skip/:take', function (req, res) {
  const keys = db._query(aql`
    FOR entry IN ${foxxColl}
    LIMIT @skip, @take // ** 
    RETURN entry._key
  `, {'skip': skip, 'take': take});
  res.send(keys);
})

**可以传入跳过/跳过值,也可以根据页码进行计算。

*编辑Foxx端点本质上是javascript应用程序。您可以使用上面的分页方法轻松地使用游标,或者将游标端点用作documented。您需要将游标IDhasMore属性传递给客户端,以便客户端可以请求下一批处理。'batchSize‘属性设置通过游标返回的结果数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48624946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档