Node.js中实现MongoDB数据库的增删改查

这篇博客详细介绍了如何在Node.js环境中使用Mongoose库进行MongoDB数据库的增删改查操作。从启动MongoDB服务器开始,讲解了Mongoose的安装、连接数据库、定义模型和Schema、模块化设计,以及Mongoose的内置CRUD方法和数据校验功能。此外,还探讨了如何扩展Model的静态和实例方法以及模式修饰符的使用。
摘要由CSDN通过智能技术生成

下载安装MongoDB数据库:

mac安装mongoDB详细步骤 - 简书介绍: 基于分布式文件存储的数据库,使用C++编写。应用最广泛的非关系型数据库(NoSQL)。NoSQL与SQL区别:NoSQL是基于键值对保存数据的,无复制的sql查询,表...https://www.jianshu.com/p/a594e6482e5c

Mongoose中文文档:

Mongoose 5.0 中文文档http://mongoosejs.net/docs/queries.html注意:在Node.js中使用MongoDB需要用到Mongoose这个包 !!!


一. 启动MongoDB数据库服务器

在终端依次输入:

# 打开到mongodb的bin文件夹
cd /usr/local/mongodb/bin
# 查看文件夹内容
ls
# 启动mongodb数据库服务器
mongod --dbpath=../data/db

(因为本机的Mongodb没有启用自启动,所以每次要使用的时候都要启动一下) 

注意:MongoDB的端口号默认是27017。 


二 . 在Node.js中使用Mongoose操作MongoDB数据库

Mongoose的特点:(1)通过关系型数据库的思想设计非关系型数据库,(2)基于mongodb驱动,并简化其操作。

1. 在命令行中安装mongoose模块

# 安装mongoose模块
npm i mongoose 

2. 引入mongoose并连接数据库

3. 定义模型:Schema是数据库对象的集合,是mongoose中用到的一种数据模式,可以理解为表结构的定义。每个schema会映射到MongoDB中的一个集合(collection),但它不具备操作数据库的能力。定义好schema后要生成model,model是由schema生成的模型,可以对数据库进行操作。

注意:mongoose.model中可以传入两个参数,也可以传入三个参数。

  • 参数1:模型名称(首字母大写);
  • 参数2:Schema;
  • 参数3:数据库集合名称(默认为模型名称的小写复数形式);

4. 增删改查操作

// 1. 在命令行中安装mongoose模块

// 2. 引入mongoose并连接数据库
const mongoose=require('mongoose')
// 连接数据库,数据库名为cms-test
mongoose.connect('mongodb://127.0.0.1:27017/cms-test')
// 连接数据库时,若有账户密码需要采用下面的连接方式
// mongoose.connect('mongodb://myadmin:123456@localhost:27017/cms-test') 
// 连接数据库时,也可以传一个回调函数,检查数据库是否连接成功
// mongoose.connect('mongodb://127.0.0.1:27017/cms-test',function(err){
//     if(err){
//         return console.log(err)
//     }
//     console.log('数据库连接成功')
// })

// 3. 定义users集合(表)的Schema
// Schema里的对象和数据库表里的字段需要一一对应
var UserSchema=mongoose.Schema({
    name:String,
    age:Number,
    status:{
        type:Number,
        default:1   //默认值
    },
})

// 4. 定义数据库模型,操作数据库
// model里的第一个参数:(1)首字母大写,(2)要和数据库集合(表)名称对应
// 这个模型会和与模型名称小写复数形式相同的数据库表建立连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值