reactjs - mongodb - 如何从数组中获取有限数量的项目
问题描述
是否有可能以某种方式从数组中获取有限数量的项目?现在我只能获取完整的用户数据,但我想要一个分页,我可以从用户数据中加载有限数量的任务
async getUserTasks( _id, _limit ) {
try {
await UserModel.find( {
_id: _id,
"tasks": { $size: _limit }
} );
} catch ( e ) {
console.log( e );
}
}
解决方案
用于limit
限制可以从读取操作返回的文档数。limit
用作操作可以返回的最大文档数的上限,但如果没有足够的文档达到限制,则该操作可以返回较少数量的文档。如果limit
与该skip
方法一起使用,则skip
首先应用,并且限制仅适用于skip
.
按照以下示例中的说明将数据插入到集合中,并仅返回使用排序、跳过和限制的查询的某些结果。考虑以下描述书籍的文档集合:
[
{ "_id": 1, "name": "The Brothers Karamazov", "author": "Dostoyevsky", "length": 824 },
{ "_id": 2, "name": "Les Misérables", "author": "Hugo", "length": 1462 },
{ "_id": 3, "name": "Atlas Shrugged", "author": "Rand", "length": 1088 },
{ "_id": 4, "name": "Infinite Jest", "author": "Wallace", "length": 1104 },
{ "_id": 5, "name": "Cryptonomicon", "author": "Stephenson", "length": 918 },
{ "_id": 6, "name": "A Dance With Dragons", "author": "Tolkein", "length": 1104 },
]
限制
以下示例查询集合以返回前三本最长的书。它将所有文档与查询匹配,对长度字段应用排序以在书籍之前返回长度较长的书籍,并应用限制以仅返回 3 个结果:
// define an empty query document
const query = {};
// sort in descending (-1) order by length
const cursor = collection.find(query).sort({ length: -1 }).limit(3);
await cursor.forEach(console.dir);
上面的代码示例输出以下三个文档,按长度排序:
{ "_id": 2, "title": "Les Misérables", "author": "Hugo", "length": 1462 }
{ "_id": 6, "title": "A Dance With Dragons", "author": "Martin", "length": 1104 }
{ "_id": 4, "title": "Infinite Jest", "author": "Wallace", "length": 1104 }
推荐阅读
- html - 给我元素“head”的 HTML Validator 缺少子元素“title”的必需实例
- javascript - 根据指定的长度用 null 填充剩余的数组索引
- python - Discord bot 在我运行命令时显示错误,但有时仍会运行命令
- java - org.postgresql.util.PSQLException:int 类型的值错误:(简单的 JDBC 插入)
- r - 过滤数据列有某字
- java - 如何在 Android API 22 上创建 AES 密钥并通过私钥对其进行加密?
- python - CXFreeze:ModuleNotFoundError:没有名为“skimage.feature._orb_descriptor_positions”的模块
- reactjs - 错误:我的模态组件超出了最大更新深度
- amazon-web-services - 为 Neptune 构建 http REST API 请求的 AWS 授权标头
- node.js - 如何在 Nuxt 的 serverMiddleware 中使用正则表达式定义动态路由路径?