当前位置: 首页 > news >正文

Node.js 操作 MongoDB

目录

Node.js 操作 MongoDB

一、什么是 MongoDB?

二、MongoDB 的功能概览

三、MongoDB 的安装与启动

安装 MongoDB(以本地安装为例)

启动 MongoDB

四、Node.js 如何连接 MongoDB?

使用 Mongoose ODM 工具

建立连接

五、定义数据模型(Model)

六、Node.js 操作 MongoDB(CRUD)

1️ 添加数据(Create)

2️ 查询数据(Read)

3️ 更新数据(Update)

4️ 删除数据(Delete)

七、使用可视化工具查看数据库

八、实战推荐结构示例

总结


Node.js 操作 MongoDB


一、什么是 MongoDB?

MongoDB 是一个开源的 NoSQL 文档型数据库,它使用类似 JSON 的 BSON 格式存储数据,每一条记录称为一个“文档(Document)”,多个文档组成“集合(Collection)”。

特点:

  • 非关系型:无需预定义表结构(灵活)
  • 文档存储:结构类 JSON,支持嵌套
  • 高性能、高可扩展性
  • 支持索引、聚合、地理位置查询等强大功能

二、MongoDB 的功能概览

  • 文档式结构(BSON)
  • 动态模式:可以存不同结构的数据
  • 高可用性与分片机制:适用于大数据量场景
  • 内置副本集:数据安全
  • 丰富的查询语法:支持条件、排序、分页、聚合等

三、MongoDB 的安装与启动

安装 MongoDB(以本地安装为例)

  • Windows/macOS/Linux 可从官网下载:Download MongoDB Community Server | MongoDB
  • 也可使用 Docker 安装:
docker run -d -p 27017:27017 --name mongo mongo

启动 MongoDB

  • 本地方式
mongod --dbpath 数据文件路径
  • 默认监听地址为:mongodb://127.0.0.1:27017

四、Node.js 如何连接 MongoDB?

使用 Mongoose ODM 工具

npm install mongoose

建立连接

// db.js
const mongoose = require("mongoose");mongoose.connect("mongodb://127.0.0.1:27017/mydb").then(() => console.log("MongoDB 连接成功")).catch((err) => console.error("MongoDB 连接失败", err));

说明:

  • 127.0.0.1:27017 是 MongoDB 默认端口
  • mydb 是数据库名,不存在会自动创建

五、定义数据模型(Model)

// model/UserModel.js
const mongoose = require("mongoose");const UserSchema = new mongoose.Schema({username: String,password: String,age: Number
});const UserModel = mongoose.model("user", UserSchema); // 对应集合 users
module.exports = UserModel;

六、Node.js 操作 MongoDB(CRUD)

所有操作需在 await connect() 后使用,或包裹在 async 函数中。

1️ 添加数据(Create)

await UserModel.create({username: "Tom",password: "123456",age: 20
});

2️ 查询数据(Read)

查询全部

const users = await UserModel.find(); 

条件查询

const users = await UserModel.find({ age: { $gte: 18 } });

查询一条

const user = await UserModel.findOne({ username: "Tom" });

3️ 更新数据(Update)

await UserModel.updateOne({ username: "Tom" },{ $set: { age: 25 } }
);

4️ 删除数据(Delete)

await UserModel.deleteOne({ username: "Tom" });

七、使用可视化工具查看数据库

推荐以下图形化 MongoDB 管理工具:

工具说明
MongoDB Compass官方 GUI 工具,功能强大,免费
Robo 3T轻量 GUI,常用于开发调试
NoSQLBooster支持 MongoShell 脚本和图表
MongoDB Atlas云端托管 + 可视化操作

使用方式:连接 mongodb://127.0.0.1:27017/mydb,即可看到所有集合与数据。


八、实战推荐结构示例

project/
├── db.js               # 数据库连接配置
├── model/
│   └── UserModel.js    # 用户模型
├── index.js            # 入口文件(包含增删改查)

index.js 示例:

const connect = require('./db');
const UserModel = require('./model/UserModel');async function main() {await connect();// 添加await UserModel.create({ username: "Alice", password: "123", age: 22 });// 查询const users = await UserModel.find();console.log(users);// 更新await UserModel.updateOne({ username: "Alice" }, { age: 23 });// 删除await UserModel.deleteOne({ username: "Alice" });process.exit();
}main();

总结

项目内容
数据库MongoDB(非关系型,文档型)
Node连接方式mongoose.connect()
操作方式createfindupdateOnedeleteOne
工具推荐MongoDB Compass、Robo 3T、NoSQLBooster 等
数据结构文档(Document)、集合(Collection)
常见端口默认 27017

 

http://www.dtcms.com/a/310948.html

相关文章:

  • 【机器学习】“回归“算法模型的三个评估指标:MAE(衡量预测准确性)、MSE(放大大误差)、R²(说明模型解释能力)
  • 分布式事务----spring操作多个数据库,事务以及事务回滚还有用吗
  • Oracle 11gR2 Clusterware应知应会
  • 【unity组件_Transform 】
  • 设计模式篇:在前端,我们如何“重构”观察者、策略和装饰器模式
  • 蓝桥杯----串口
  • 内存、硬盘与缓存的技术原理及特性解析
  • 《软件测试与质量控制》实验报告二 单元测试
  • Ubuntu系统VScode实现opencv(c++)视频及摄像头使用
  • 空间平面旋转与xoy平行
  • 【BTC】挖矿
  • MyBatisPlus之CRUD接口(IService与BaseMapper)
  • 【软考中级网络工程师】知识点之堆叠
  • 公网服务器上Nginx或者Openresty如何屏蔽IP直接扫描
  • CS课程项目设计7:基于Canvas交互友好的五子棋游戏
  • 小智服务器Java安装编译(xinnan-tech)版
  • 【05】OpenCV C#——OpenCvSharp 图像基本操作---转灰度图、边缘提取、兴趣区域ROI,图像叠加
  • 28Rsync免密传输与定时备份
  • 【Spring Boot 快速入门】五、文件上传
  • 图漾相机-ROS1_SDK_ubuntu 4.X.X版本编译
  • Shell【脚本 02】离线安装配置Zookeeper及Kafka并添加service服务和开机启动(脚本分析)
  • [硬件电路-122]:模拟电路 - 信号处理电路 - 模拟电路与数字电路、各自的面临的难题对比?
  • [硬件电路-124]:模拟电路 - 信号处理电路 - 测量系统的前端电路详解
  • 编程与数学 03-002 计算机网络 20_计算机网络课程实验与实践
  • filezilla出现connected refused的时候排查问题
  • Flink2.0学习笔记:Stream API 窗口
  • 鸿蒙智选携手IAM进驻长隆熊猫村,为国宝打造智慧健康呼吸新空间
  • 智能合约漏洞导致的损失,法律责任应如何分配
  • Hyperliquid:揭秘高性能区块链共识引擎HyperBFT
  • 入门MicroPython+ESP32:《点亮LED灯》