我以前使用过MongoDB和mongoose,现在尝试在我的应用中实现dynamoose, 对于下面显示的猫鼬查询,如何在dynamoose中编写相同的查询?
返回this.scan({abcd:{$ ne:null},activeFlag:true})。skip(9 *(page-1))。sort({date:-1})。limit(9)< / p>
我需要同样的 $ ne-不等于 跳跃 分类 并限制
答案 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功能如何工作,我真的不能这么说。