当前位置: 首页 > 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.lryc.cn/news/608329.html

相关文章:

  • Linux系统编程Day3-- Linux常用操作(终)
  • 2025-08 安卓开发面试拷打记录(面试题)
  • 3 使用 Jenkins 构建镜像:将你的应用打包成镜像
  • K8S部署ELK(三):部署Elasticsearch搜索引擎
  • 【机器学习】非线性分类算法(上):KNN(基于距离相似度)与朴素(特征独立)贝叶斯(基于概率统计)
  • 排序算法-堆排序
  • SQL 四大语言分类详解:DDL、DML、DCL、DQL
  • 分布在内侧内嗅皮层的层Ⅱ或层Ⅲ的头部方向细胞(head direction cells)对NLP中的深层语义分析的积极影响和启示
  • 智能制造——解读CMMM评估手册【附全文阅读】
  • MyBatis 批量操作 XML 实现方式
  • 信创应用服务器TongWeb安装教程、前后端分离应用部署全流程
  • 元宇宙重构未来交通新图景
  • linux source命令使用详细介绍
  • 空间平面旋转与xoy平行
  • Node.js中path模块的使用指南
  • QT中使用OpenCV保姆级教程
  • 1分钟临时共享空间在线小工具实现
  • 安卓自动点击器:设置点击周期 / 滑动,抢票、游戏刷日常秒会
  • 2025牛客多校第六场 D.漂亮矩阵 K.最大gcd C.栈 L.最小括号串 个人题解
  • C++入门基础(三):const引用、指针和引用的关系、inline(修饰内联函数)替代宏、nullptr代替null
  • Rust进阶-part1-智能指针概述-box指针
  • Java中Lambda 表达式的解释
  • 机器学习实战:KNN算法全解析 - 从原理到创新应用
  • 机器学习消融实验:方法论演进、跨领域应用与前沿趋势
  • 大模型(五)MOSS-TTSD学习
  • 【MATLAB】(四)函数运算
  • 【MATLAB】(五)向量
  • C语言第八章指针一
  • MybatisPlus生成代码
  • MQTT协议测试环境部署