我正在使用dynamodb npm查询dynamodb
当我查询如下,虽然我将限制为12项,但它总是返回 10项
TableDB
.query(lang)
.filter('users').in(['case1','case2'])
.attributes(['offerId', 'lang'])
.ascending()
.usingIndex('lang-date-index')
.limit(12)
.exec((err, data) => {
console.log(data)
}
我不想仅使用lastEvaluateKey
查询下两个项目。
我错过了什么吗?
答案 0 :(得分:5)
Dynamo首先应用限制,然后才应用过滤器。见Scan limit。 这意味着,如果您的表在下面的顺序中有3个项目:
Dog1
Cat1
Dog2
您按狗过滤,读取限制为2,然后您获得以下结果集:
Dog1
发电机响应还将提供 LastEvaluatedKay ,这是您表上最后一次读取的主键。在下一个结果中将此 LastEvaluatedKay 设置为 ExclusiveStartKey 。这是一个类似的example of pagination loop for dynamo(在java中)。
答案 1 :(得分:0)
你试过吗
.loadAll()
文档对于它的作用并不太清楚,但听起来很有希望。