- Node.js教程
- Node.js - 教程
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 首次申请
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 活动
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 流程
- Node.js - 扩展应用程序
- Node.js - 包装
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲器
- Node.js - Streams
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 快速入门
- Node.js - MySQL创建数据库
- Node.js - MySQL创建表
- Node.js - MySQL Insert Into
- Node.js - MySQL Select From
- Node.js - MySQL Where 子句
- Node.js - MySQL Order By
- Node.js - MySQL Delete
- Node.js - MySQL Update
- Node.js - MySQL Join
- Node.js MongoDB
- Node.js - MongoDB 快速入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB Insert
- Node.js - MongoDB Find
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB Delete
- Node.js - MongoDB Update
- Node.js - MongoDB Limit
- Node.js - MongoDB Join
- Node.js模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - utility 模块
- Node.js - Web 模块
Node.js - MongoDB Limit
MongoDB 中的 Limit() 方法与 SQL 中的 Limit 子句具有类似的效果。它将 find() 查询返回的文档数量限制为指定数量。limit() 方法将单个整数作为参数。如果省略了参数,则意味着没有应用任何限制。
为了理解 limit() 函数的工作原理,我们将使用数据库中的 orders 集合。在可用文档中,价格大于或等于 10 的文档可以通过以下代码检索 -
例
const {MongoClient} = require('mongodb');
async function main(){
const uri = "mongodb://localhost:27017/";
const client = new MongoClient(uri);
try {
await client.connect();
await limitdocs(client, "mydb", "orders");
} finally {
await client.close();
}
}
main().catch(console.error);
async function limitdocs(client, dbname, colname){
var myqry = {numPurchased:{$gte:10}};
const result = await client.db(dbname).collection(colname).find({"numPurchased":{$gte:10}}).toArray();
console.log(JSON.stringify(result));
}
输出
[{"_id":"658d7f3b30a92c8e5018a43a","orderId":201,"custid":301,"prodId":100,"numPurchased":20},
{"_id":"658d7f3b30a92c8e5018a43b","orderId":202,"custid":302,"prodId":101,"numPurchased":10},
{"_id":"658d7f3b30a92c8e5018a43d","orderId":204,"custid":303,"prodId":103,"numPurchased":15},
{"_id":"658d7f3b30a92c8e5018a43e","orderId":205,"custid":303,"prodId":103,"numPurchased":20},
{"_id":"658d7f3b30a92c8e5018a441","orderId":208,"custid":301,"prodId":100,"numPurchased":10},
{"_id":"658d7f3b30a92c8e5018a442","orderId":209,"custid":303,"prodId":103,"numPurchased":30}]
{"_id":"658d7f3b30a92c8e5018a43b","orderId":202,"custid":302,"prodId":101,"numPurchased":10},
{"_id":"658d7f3b30a92c8e5018a43d","orderId":204,"custid":303,"prodId":103,"numPurchased":15},
{"_id":"658d7f3b30a92c8e5018a43e","orderId":205,"custid":303,"prodId":103,"numPurchased":20},
{"_id":"658d7f3b30a92c8e5018a441","orderId":208,"custid":301,"prodId":100,"numPurchased":10},
{"_id":"658d7f3b30a92c8e5018a442","orderId":209,"custid":303,"prodId":103,"numPurchased":30}]
现在我们将对 find() 查询返回的结果应用限制为 1。limit()方法的语法如下 -
collection.find(query).limit(number);
将 limitdocs() 函数更改为以下代码,以获取限制为指定数量的文档数量。
async function limitdocs(client, dbname, colname){
var myqry = {numPurchased:{$gte:10}};
const result = await client.db(dbname).collection(colname).find({"numPurchased":{$gte:10}}).limit(1).toArray();
console.log(JSON.stringify(result));
}
输出
[{"_id":"658d7f3b30a92c8e5018a43a","orderId":201,"custid":301,"prodId":100,"numPurchased":20}]
find() 查询从第一次出现开始,在满足过滤条件的情况下获取文档。如果要跳过一定数量的文档,请使用 skip() 子句。
collection.find(query).limit(x).skip(y)
在 find() 返回的文档中,只有 x 个文档会填充结果集,其中前 y 个文档将被删除。
以下 limitdocs() 函数返回 orders 集合中第二个具有 price>=10 的文档
async function limitdocs(client, dbname, colname){
var myqry = {numPurchased:{$gte:10}};
const result = await client.db(dbname).collection(colname).find({"numPurchased":{$gte:10}}).limit(1).skip(1).toArray();
console.log(JSON.stringify(result));
}
输出
[{"_id":"658d7f3b30a92c8e5018a43b","orderId":202,"custid":302,"prodId":101,"numPurchased":10}]