javascript - 如何使用 dynamoose 进行跳过、排序和限制?
问题描述
我以前使用过 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()
orQuery.ascending()
语法而不是Scan
.
Query.limit()
您可以使用或限制 DynamoDB 将扫描或查询的项目数Scan.limit()
。请记住,这会限制在应用任何过滤器之前在 DynamoDB 上扫描或查询的项目数量。因此,如果您在扫描或查询中过滤掉项目,则限制将限制甚至考虑用于过滤器的项目数量。
最后,重要的是要了解,尽管 Dynamoose 深受 Mongoose 的启发,但它并不是一个即插即用的替代品。MongoDB 和 DynamoDB 之间有一些主要的基本概念非常不同,这使得即插即用系统基本上是不可能的。
因此,我强烈建议您通读 Dynamoose 和 DynamoDB 文档,以了解 DynamoDB 的优势和局限性,并确保它真正满足您给定项目的需求。
当然,您可以通过编写自己的代码在 Dynamoose 回调函数内部从 DynamoDB 返回结果后做任何您想做的事情,但取决于您有多少结果、表中有多少项目、您有多快需要这样,等等,这可能不是一个很好的选择。因此,尽管您所要求的一切都可以通过编写自己的代码来实现,但它有可能不如 MongoDB,因为我对 MongoDB 的了解不如 DynamoDB,而且因为我不知道那些特定的 Mongoose 功能是如何工作的,我真的不能说。
推荐阅读
- c - 产生一些线程并在线程工作者函数中执行计算
- python - 将嵌套的 json 导入 pandas 数据框
- node.js - 使用 npm 构建失败
- php - 如何从 SQL 中的引号中选择特定文本
- android - 如何在 Android 中通过派生的 ECDSA 公钥生成以太坊钱包地址
- laravel - 如何在 AWS 上部署 Laravel?
- angular - 在离子应用程序中禁用旋转后,它在 LE2 android 手机中旋转
- html - 如何阻止 Gmail 在 HTML 元素中间剪裁或修剪电子邮件
- c# - 如何从 VOILut 标签计算 DICOM 图像的窗口宽度和中心
- java - 使用 Cordova 创建一个插件,用于在用户解锁屏幕时启动应用程序活动