如何跳过,排序和限制使用Dynamoose?

时间:2018-08-29 08:24:04

标签: javascript node.js amazon-dynamodb dynamoose

我以前使用过MongoDB和mongoose,现在尝试在我的应用中实现dynamoose, 对于下面显示的猫鼬查询,如何在dynamoose中编写相同的查询?

返回this.scan({abcd:{$ ne:null},activeFlag:true})。skip(9 *(page-1))。sort({date:-1})。limit(9)< / p>

我需要同样的 $ ne-不等于 跳跃 分类 并限制

1 个答案:

答案 0 :(得分:1)

Dynamoose当前不支持skip函数。这主要是由于我的理解,DynamoDB在其平台上没有跳过类型功能。

要执行不相等的操作,可以在Dynamoose中使用.not()语法。

要进行排序,您必须使用Query.descending()Query.ascending()语法而不是Scan

您可以使用Query.limit()Scan.limit()限制DynamoDB扫描或查询的项目数。请记住,这会限制在应用任何过滤器之前 在DynamoDB上扫描或查询的项目数。因此,如果您要过滤掉扫描或查询中的项目,则该限制将限制甚至考虑使用过滤器的项目数。

最后,很重要的一点是要理解,尽管Dynamoose受猫鼬的启发很大,但它并不意味着即插即用的替代品。 MongoDB和DynamoDB之间存在一些主要的基本概念,它们之间有很大的不同,这使得即插即用系统基本上变得不可能。

因此,我强烈建议您通读Dynamoose和DynamoDB文档,以了解DynamoDB的优点和局限性,并确保它确实满足给定项目的需求。

当然,您可以编写自己的代码,在Dynamoose回调函数内从DynamoDB返回结果后,执行您想做的所有事情,但是要取决于结果数,表中的项数,您需要多快才能完成此操作,等等。这可能不是一个很好的选择。因此,尽管您所要求的一切都可以通过编写自己的代码来实现,但它有可能不如MongoDB好,而且因为我对MongoDB的了解不如DynamoDB,而且因为我不知道那些特定的Mongoose功能如何工作,我真的不能这么说。