javascript – MarkLogic – Node.js客户端API – QueryBuilder – 需要数据页面和查询的完整计数
作者:互联网
如果我在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条记录.即使有1000条与此查询相关的记录,它也会给我50分.
如果我查询:
.withOptions({categories: 'none'})
我可以看到查询的真实计数.
是否有内置选项为我提供单页数据并获取查询的完整计数?
解决方法:
这将做你想要的:
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项将包含文档的全部内容.
标签:marklogic,javascript,node-js 来源: https://codeday.me/bug/20190824/1710044.html