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

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.xdnf.cn/news/16864.html

相关文章:

  • 【LeetCode 热题 100】739. 每日温度——(解法一)单调栈+从右到左
  • 最新Windows11系统镜像,23H2 64位ISO镜像
  • 拉格朗日插值法
  • 【软考中级网络工程师】知识点之堆叠
  • MySQL PostgreSQL JDBC URL 配置允许批量操作
  • 系统思考:超越线性分析
  • openwrt下安装istore(基于pve)
  • Linux网络编程【基于UDP网络通信的字典翻译服务】
  • Effective C++ 条款17:以独立语句将newed对象置入智能指针
  • 农田通量计算方法与应用;高精度感热/潜热通量反演与绘图等;农田蒸散发与能量平衡
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | QuizApp(交互式在线测验应用组件)
  • Mujoco(MuJoCo,全称Multi - Joint dynamics with Contact)一种高性能的物理引擎
  • 基于Postman进行http的请求和响应
  • linux基本系统服务——DNS服务
  • 【嵌入式汇编基础】-ARM架构基础(三)
  • 宝塔配置文件缺失导致无法正常启动
  • Java 集合框架: LinkedHashSet
  • 进程 Vs 线程
  • 【OpenGL】LearnOpenGL学习笔记01 - 环境配置、窗口创建
  • Flask + YARA-Python*实现文件扫描功能
  • 开源列式分布式数据库clickhouse
  • 深入 Go 底层原理(十三):interface 的内部表示与动态派发
  • Redisson高并发实战:Netty IO线程免遭阻塞的守护指南
  • 算法提升之数学(快速幂+逆元求法)
  • 【20min 急速入门】使用Demucs进行音轨分离
  • Redis7 String类型数据
  • 【iOS】KVO
  • MyBatisPlus之CRUD接口(IService与BaseMapper)
  • 28Rsync免密传输与定时备份
  • 关于Web前端安全防御XSS攻防的几点考虑