mongoose的介绍,连接数据库

Mongoose 是一个基于 Node.js 的 MongoDB ODM(Object Data Modeling)库,用于在 MongoDB 和 Node.js 应用之间提供结构化的模型层,帮助你更优雅、安全地操作数据库。


🧾 一、Mongoose 简介

  • 📦 功能

    • 定义数据模型(Schema)
    • 提供强大的验证机制
    • 支持中间件(middleware)、钩子(hooks)
    • 提供简洁的增删查改(CRUD)接口
  • 🧠 适用场景

    • 使用 Node.js 开发需要与 MongoDB 交互的项目
    • 希望对 MongoDB 文档结构进行更严格控制时

🔗 二、使用 Mongoose 连接数据库

1. 安装 mongoose

复制代码
npm install mongoose

2. 连接 MongoDB(最基本示例)

复制代码
const mongoose = require('mongoose')

mongoose.connect('mongodb://localhost:27017/myDatabase', {
  useNewUrlParser: true,
  useUnifiedTopology: true,
})
.then(() => {
  console.log('✅ MongoDB 连接成功')
})
.catch((err) => {
  console.error('❌ MongoDB 连接失败:', err)
})

mongodb://localhost:27017/myDatabase 中:

  • localhost 是主机地址
  • 27017 是默认端口
  • myDatabase 是数据库名,不存在时会在插入数据时自动创建

🏗️ 三、Mongoose 基础结构示意

复制代码
// 1. 定义 schema(数据结构)
const userSchema = new mongoose.Schema({
  name: String,
  age: Number,
  email: String
})

// 2. 创建模型(Model)=> 会映射为 MongoDB 中的集合
const User = mongoose.model('User', userSchema)

// 3. 使用模型进行操作
User.create({ name: 'Tom', age: 20, email: 'tom@example.com' })

相关推荐
m0_743623921 天前
Tailwind CSS如何实现鼠标悬停变色_使用hover-bg-blue-500类
jvm·数据库·python
2301_777599371 天前
CSS如何实现复杂的边框渐变效果_配合border-image使用
jvm·数据库·python
eRRA OFAG1 天前
Redis 设置密码无效问题解决
数据库·redis·缓存
HHHHH1010HHHHH1 天前
SQL高效实现基于JOIN的交叉分析_多表关联实现多维统计
jvm·数据库·python
m0_515098421 天前
SSD硬盘对HTML工具速度有影响吗_存储介质与开发效率关系【详解】
jvm·数据库·python
weixin_568996061 天前
Bootstrap中.d-none类在不同分辨率下的高级用法
jvm·数据库·python
qq_206901391 天前
golang如何调用Twilio语音短信API_golang Twilio语音短信API调用实战
jvm·数据库·python
m0_684501981 天前
c++如何将宽字符串wstring输出到UTF-8文件_C++17编码转换【附源码】
jvm·数据库·python
m0_748920361 天前
怎么在Navicat批量导入多个JSON数据_快速合并数据技巧
jvm·数据库·python
2201_761040591 天前
mysql如何优化重复索引_mysql冗余索引查找与处理
jvm·数据库·python