我以前使用过 MongoDB 和 mongoose,现在尝试在我的应用程序中实现 dynamoose, 如何在 dynamoose 中为下面显示的 Mongoose 查询编写相同的查询?
return this.scan({ abcd: { $ne: null }, activeFlag: true }).skip(9 * (page - 1)).sort({ date: -1 }).limit(9)
我需要同样的 $ne - 不等于 跳过 种类 并且还限制
最佳答案
Dynamoose 目前不支持 skip
功能。这主要是因为根据我的理解,DynamoDB 在他们的平台上没有跳过类型的功能。
要执行类似不等于的操作,您可以使用 .not()
Dynamoose 中的语法。
要进行排序,您必须使用 Query.descending()
或 Query.ascending()
语法而不是 Scan
。
您可以使用 Query.limit()
限制 DynamoDB 将扫描或查询的项目数或 Scan.limit()
.请记住,这限制了应用任何过滤器之前在 DynamoDB 上扫描或查询的项目数。因此,如果您要过滤掉扫描或查询中的项目,该限制将限制甚至被考虑用于过滤器的项目数量。
最后,重要的是要了解,尽管 Dynamoose 深受 Mongoose 的启发,但它并不意味着即插即用的替代品。 MongoDB 和 DynamoDB 之间有一些主要的基本概念非常不同,这使得即插即用系统基本上是不可能的。
因此,我强烈建议您通读 Dynamoose 和 DynamoDB 文档,以了解 DynamoDB 的优势和局限性,并确保它真正满足您给定项目的需求。
当然,您可以通过编写自己的代码在 Dynamoose 回调函数内部从 DynamoDB 返回结果后做任何您想做的事情,但这取决于您有多少结果,表中有多少项目,你需要多快,等等,这可能不是一个很好的选择。所以虽然你所要求的一切都可以通过编写你自己的代码来实现,但它有可能不如 MongoDB,因为我对 MongoDB 的了解不如 DynamoDB,而且因为我不知道这些特定的 Mongoose 函数是如何工作的,我真的不能说。
关于javascript - 如何使用 dynamoose 跳过、排序和限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52072806/