- 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 - 流
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 入门
- Node.js - MySQL 创建数据库
- Node.js - MySQL 创建表
- Node.js - MySQL 插入数据
- Node.js - MySQL 从表中选择数据
- Node.js - MySQL Where 条件
- Node.js - MySQL 排序
- Node.js - MySQL 删除数据
- Node.js - MySQL 更新数据
- Node.js - MySQL 联接
- Node.js MongoDB
- Node.js - MongoDB 入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB 插入数据
- Node.js - MongoDB 查找
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB 删除数据
- Node.js - MongoDB 更新数据
- Node.js - MongoDB 限制
- Node.js - MongoDB 联接
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用程序模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
Node.js - MongoDB 查找
MongoShell 客户端类似于 MySQL 命令行工具。它是一个与 MongoDB 数据库交互的工具。您可以使用 MongoDB 语言执行 CRUD 操作。MongoDB 语言类似于 SQL。Collection 对象可用的 find() 和 findOne() 方法相当于 SQL 中的 SELECT 查询。这些方法也在 mongodb 模块中定义,以便与 Node.js 应用程序一起使用。
find() 方法有一个参数,参数形式为 JSON 格式的查询。
db.collection.find({k:v});
find() 方法返回一个结果集,该结果集包含满足给定查询的集合中的所有文档。如果查询参数为空,则返回集合中的所有文档。
读取所有文档
以下示例检索 products 集合中的所有文档。
示例
const {MongoClient} = require('mongodb'); async function main(){ const uri = "mongodb://127.0.0.1:27017/"; const client = new MongoClient(uri); try { // Connect to the MongoDB cluster await client.connect(); // Make the appropriate DB calls // Create a single new listing await listall(client, "mydb", "products"); } finally { // Close the connection to the MongoDB cluster await client.close(); } } main().catch(console.error); async function listall(client, dbname, colname){ const result = await client.db("mydb").collection("products").find({}).toArray(); console.log(JSON.stringify(result)); }
输出
[{"_id":"65809214693bd4622484dce3","ProductID":1,"Name":"Laptop","Price":25000},{"_id":"6580964f20f979d2e9a72ae7","ProductID":1,"Name":"Laptop","price":25000},{"_id":"6580964f20f979d2e9a72ae8","ProductID":2,"Name":"TV","price":40000},{"_id":"6580964f20f979d2e9a72ae9","ProductID":3,"Name":"Router","price":2000},{"_id":"6580964f20f979d2e9a72aea","ProductID":4,"Name":"Scanner","price":5000},{"_id":"6580964f20f979d2e9a72aeb","ProductID":5,"Name":"Printer","price":9000}]
您还可以使用 forEach 循环遍历结果集,如下所示:
var count=0; result.forEach(row => { count++; console.log(count, row['Name'], row['price']); });
输出
1 Desktop 20000 2 Laptop 25000 3 TV 40000 4 Router 2000 5 Scanner 5000 6 Printer 9000
findOne()
findOne() 方法返回给定查询的第一个匹配项。以下代码返回名称为 TV 的产品的文档
async function listall(client, dbname, colname){ const result = await client.db(dbname).collection(colname).find({"Name":"TV"}).toArray(); console.log(JSON.stringify(result)); }
输出
[{"_id":"6580964f20f979d2e9a72ae8","ProductID":2,"Name":"TV","price":40000}]
如果查询为空,则返回集合中的第一个文档。
async function listall(client, dbname, colname){ const result = await client.db(dbname).collection(colname).findOne({}); console.log(JSON.stringify(result)); }
输出
{"_id":"65809214693bd4622484dce3","ProductID":1,"Name":"Laptop","Price":25000}
广告