MarkLogic - Node.js客户端API - QueryBuilder -需要页面数据和查询的完整计数
MarkLogic - Node.js Client API - QueryBuilder - Need page of data and full count for query
如果我在node.js客户端API中有以下queryBuilder查询:
db.client.documents.query(
q.where(
q.collection('records'),
q.or(
q.value('id', [1,2,3,4])
)
).slice(0, 50)
)
这将给出与此查询相关的前50条记录。它也会给我一个50的计数,即使有1000条记录与这个查询相关。
如果我用
执行查询.withOptions({categories: 'none'})
我可以看到查询的实际计数。
是否有一个内置的选项,给我一个单页的数据,并得到查询的完整计数?
为了支持分页,您必须首先调用. withoptions ({categories: 'none'})来获取记录的总数,然后调用. withoptions ({categories: 'content'})来获取实际内容。下面是关于分页的一篇很好的文章:
http://www.tamas.io/marklogic-and-node-js/据我所知,没有内置的方法来同时获取总数和数据。
这就是你想要的:
db.documents.query(
qb.where(
qb.term('apple')
)
.slice(1, 10)
.withOptions({categories: 'content', metrics: true})
).result()
.then(function(docs) {
console.log('I have ' + docs.length + ' docs');
})
.catch(function(error) {
console.log('something went wrong');
});
在then
函数中,docs是一个长度为11的数组。数组中的第一项将是指标:
{
"metrics": {
"query-resolution-time": "PT0.00179S",
"snippet-resolution-time": "PT0.00505S",
"total-time": "PT0.008708S"
},
"page-length": 10,
"results": [],
"snippet-format": "snippet",
"start": 1,
"total": 20
}
结果数组将包含代码片段。数组的第1到第10项将包含文档的全部内容。
相关文章:
- 从sqlite数据库查询数据结果文件名
- ColdFusion - 查询数据表和 CRUD 操作的方法
- j查询数据表禁用特定行中的排序
- 使用 JavaScript var 通过 PHP MySQL 查询数据
- 使用反斜杠查询数据属性
- j查询数据表 导出按钮 动态文件名和标题
- Nodejs 查询数据和代码组织
- 谷歌融合表查询数据操作
- j查询数据表和排序列
- 使用 javascript 从 Mongo 集合中查询数据
- 在没有表单的情况下将查询数据发布到 URL 的方法
- 使用OrderByChild的Firebase查询数据
- 如何使用javascript在XML文件中查询数据
- 将查询数据保存到变量中,以便在以后的代码中使用
- 使用自己的Facebook访问令牌查询数据以填充数据库
- 如何在javascript中查询数据属性值(没有jquery)
- SpagoBI:使用查询数据集结果的脚本数据集
- 如何使页面上的Javascript可以使用MSSQL查询数据,而无需再次查询数据库
- 哪里是过滤AJAX查询数据的最佳位置
- 返回要在js节点js中呈现的查询数据