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

javascript - 我有12个项目的限制,但是dynamodb查询总是只返回10个项目-LMLPHP

我想念什么吗?

最佳答案

Dynamo首先应用限制,然后才应用过滤器。参见Scan limit
这意味着,如果您的表按以下顺序包含3个项目:

Dog1
Cat1
Dog2

您按狗过滤,读取限制为2,则得到以下结果集:
Dog1

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

关于javascript - 我有12个项目的限制,但是dynamodb查询总是只返回10个项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47767809/

10-11 07:31