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

MongoDB的基本操作(适配Node.js全栈项目)

在 Node.js 全栈项目中,MongoDB 作为非关系型数据库(NoSQL),常被用于存储结构灵活的文档数据(如用户信息、文章内容、日志等)。以下结合 Node.js 生态(使用官方驱动 mongodb 或 ODM 工具 Mongoose),详解 MongoDB 的基本操作及适配项目的实践。

一、环境准备

  1. 安装 MongoDB:本地部署或使用云服务(如 MongoDB Atlas),确保服务启动(默认端口 27017)。
  2. Node.js 依赖
    • 官方驱动:npm install mongodb(适合原生操作)。
    • Mongoose(推荐):npm install mongoose(基于官方驱动的 ODM 工具,提供 schema 验证、中间件等功能)。

二、核心概念(与 SQL 对比)

MongoDB SQL 说明
Database Database 数据库(独立的存储单元)
Collection Table 集合(类似表,存储多个文档)
Document Row 文档(类似行,JSON 格式的数据记录)
Field Column 字段(文档中的键值对)
ObjectId Primary Key 文档唯一标识(默认自动生成)

三、使用 Mongoose 操作 MongoDB(推荐)

Mongoose 是 Node.js 中最流行的 MongoDB ODM 工具,通过 Schema 定义数据结构,Model 操作集合,简化开发。

1. 连接数据库
// db.js
const mongoose = require('mongoose');// 连接本地 MongoDB(数据库名:myapp)
mongoose.connect('mongodb://localhost:27017/myapp', {useNewUrlParser: true,useUnifiedTopology: true
})
.then(() => console.log('MongoDB 连接成功'))
.catch(err => console.error('连接失败:', err));module.exports = mongoose;
2. 定义 Schema 与 Model

Schema 用于约束文档结构(字段类型、默认值、验证规则等),Model 是 Schema 的实例化,对应 MongoDB 的 Collection。

// models/User.js
const mongoose = require('../db');// 定义用户 Schema
const userSchema = new mongoose.Schema({username: {type: String,       // 字段类型required: true,     // 必传unique: true,       // 唯一(不可重复)trim: true          // 自动去除首尾空格},age: {type: Number,min: 0,             // 最小值验证default: 0          // 默认值},email: {type: String,match: /^[\w-]+@([\w-]+\.)+[\w-]+$/, // 邮箱格式验证required: true},createdAt: {type: Date,default<
http://www.dtcms.com/a/605888.html

相关文章:

  • 产品全生命周期运营建设简析
  • GPT-4V 赋能癌症病理诊断:上下文学习(ICL)创新方法与实现全解析
  • 方案分享:一款基于高性能单片机的落日灯方案
  • 大模型如何赋能游戏行业的智能体
  • 房产网站开发用什么语言好做网站要哪些架包
  • 音频在线剪切助手网页版源码
  • 什么是爬虫?
  • 【解决】华为欧拉系统上遇到能 ping 通 IP 地址(如 8.8.8.8)但无法 ping 通域名(如 www.baidu.com)的情况
  • SOME/IP-SD 协议中 Entry 与 Option 的定义、分类及协同机制
  • Streaming for Chat Models in LangChain
  • 海天建设集团网站网站空间ftp
  • CSS 选择器空格使用区别详解
  • 高并发内存池9 —— Page Cache 回收
  • #Harmony篇:Navigation导航
  • 找个为公司做网站的零下一度网站建设
  • 百度开启AI新纪元,让智能从成本变成超级生产力
  • 【OpenCV + VS】图像翻转与旋转
  • 工业互联利器!EtherNet/IP 转 ModbusTCP 网关,让跨协议通信零门槛
  • 网站服务器异常是什么意思西安网站开发工资
  • 网站建设甲方给乙方的需求方案长宁区公司网站建设
  • Oracle跨用户表授权+同义词创建的标准脚本模板
  • 网站建设基本资料wordpress可以做门户网站
  • Codeforces Global 30 Div1+2(ABCDE)
  • 自学网站建设多久少女免费观看完整电视电影
  • 流程驱动,协同致胜:现代OA系统构筑企业智能办公中枢
  • 填鸭表单!开箱即用的开源问卷调查系统!
  • wordpress拖拽建站潍坊做网站公司潍坊网络公司
  • 企业为什么要做网站运营旅游网站开发的背景和意义
  • 编译语言选择与开发效率的关系
  • 【LeetCode刷题】三数之和