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

Jag*_*row 2 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)
  }
Run Code Online (Sandbox Code Playgroud)

我不想再使用lastEvaluateKey下一个项目进行查询.

在此输入图像描述

我错过了什么吗?

小智 5

Dynamo首先应用限制,然后仅应用过滤器.请参阅扫描限制.这意味着,如果您的表在下面的顺序中有3个项目:

Dog1
Cat1
Dog2
Run Code Online (Sandbox Code Playgroud)

你按狗过滤,你的阅读限制是2,那么你得到以下结果集:

Dog1
Run Code Online (Sandbox Code Playgroud)

dynamo响应还将提供LastEvaluatedKay,这是您表上最后读取的主键.在下一个结果中将此LastEvaluatedKay设置为ExclusiveStartKey.这是发电机的分页循环的类似示例 (在java中).