mongoose学习笔记

构建日期:2023年3月13日

mongoose版本:v7.0.1

mongoose是一个对象文档模型(ODM)库,它对 Node 原生的 MongoDB 模块进行了进一步的优化封装,并提供了更多的功能。

一般有如下步骤:

  1. 连接数据库
  2. 定义Schema(集合结构【表结构】)
  3. 通过Schema创建模型对象
  4. 使用模型对象操作数据库(增删改查)

mongoose连接数据库

连接数据库的方法有两种,一种是使用 connect() 方法,一种是使用 createConnection() 方法。这两种方法在使用的时候是有一些区别的:

  1. 如果连接的数据库只有一个,可以选择使用 connect() 方法
  2. 如果连接的数据库有多个或者有多个权限不同的连接,只能使用 createConnection() 方法
使用connect()方法
const mongoose = require('mongoose')
// 此处连接的是test数据库,默认连接的也是test数据库
mongoose.connect('mongodb://127.0.0.1:27017/test')
    .then(() => {
   
    	console.log('连接成功')
	})
    .catch(err => {
   
    	console.log('连接失败:' + err)
	})
使用createConnection()方法
const mongoose = require('mongoose')
// 此处连接的是test数据库,默认连接的也是test数据库
const conn = mongoose.createConnection('mongodb://127.0.0.1:27017/test')

mongoose定义Schema

schema可以理解为mongodb中的集合结构(表结构)的定义,每个schema映射mongodb中的一个collection(表),不能直接操作数据库。

const mongoose = require('mongoose')

// 定义表结构,和数据库意义对应
const Schema = mongoose.Schema		//引入模式对象
const userSchema = new Schema({
   		//创建约束对象
    user_id: {
   
        type: String,
        required: true,  //必填项
        unique: true    //唯一
    },
    name: {
   
        type: String,
        required: true
    },
    email: String,
    password: String,
    date: {
   
        type: Date,
        default: Date.now()
    },
    info: Schema.Types.Mixed, //任意类型
})

mongoose创建模型对象

定义好了schema,接下来就是生成Model。model是由schema用于生成某个集合对应的模型对象,可以对数据库进行操作。

一个model对应一个集合(一张表)

如果是使用的 connect() 方法这种方式连接的数据库,创建模型对象的方法:

const mongoose = require('mongoose')
//参数1:模型名称(首字母大写), 参数2:Schema,参数3:集合名称,如果没有这个参数,则默认对应集合名称是参数1的复数形式
const userModel = mongoose.model('User', userSchema)	//创建模型对象

如果是 createConnection() 方法这种方式连接的数据看,创建模型对象的方法:

//参数1:模型名称(首字母大写), 参数2:Schema,参数3:集合名称,如果没有这个参数,则默认对应集合名称是参数1的复数形式
const userModel = conn.model(

你可能感兴趣的:(学习,mongodb,数据库)