我有12项限制,但dynamodb查询总是只返回10

时间:2017-12-12 08:03:40

标签: javascript node.js amazon-dynamodb

我正在使用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查询下两个项目。

enter image description here

我错过了什么吗?

2 个答案:

答案 0 :(得分:5)

Dynamo首先应用限制,然后才应用过滤器。见Scan limit。 这意味着,如果您的表在下面的顺序中有3个项目:

Dog1
Cat1
Dog2

您按狗过滤,读取限制为2,然后您获得以下结果集:

Dog1

发电机响应还将提供 LastEvaluatedKay ,这是您表上最后一次读取的主键。在下一个结果中将此 LastEvaluatedKay 设置为 ExclusiveStartKey 。这是一个类似的example of pagination loop for dynamo(在java中)。

答案 1 :(得分:0)

你试过吗

.loadAll()

文档对于它的作用并不太清楚,但听起来很有希望。