mongoose 入门以及实现数据的增、删、改、查

mongoose 介绍

Mongoose 是在 node.js 异步环境下对 mongodb 进行便捷操作的对象模型工具。Mongoose 是 NodeJS 的驱动,不能作为其他语言的驱动。

Mongoose 有两个特点:通过关系型数据库的思想来设计非关系型数据库;基于 mongodb 驱动,简化操作

官网:https://mongoosejs.com/

mongoose 的安装以及使用

第一步:初始化项目

创建一个项目文件夹,进入文件夹生成package.json文件

npm init --yes

第二步:安装mongoose

npm i mongoose --save

第三步:创建操作mongoose的js模块并且引入和连接数据库

需要先启动mongoDB服务,并且先创建一个数据库eggcms和一个users集合(表)

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/eggcms');

// 如果有账户密码需要采用下面的连接方式:
// mongoose.connect('mongodb://eggadmin:[email protected]:27017/eggcms');

第四步:定义Schema

数据库中的 Schema,为数据库对象的集合。 schema 是 mongoose 里会用到的一种数据模式, 可以理解为表结构的定义;每个 schema 会映射到 mongodb 中的一个 collection,它不具备 操作数据库的能力

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/eggcms');

// 如果有账户密码需要采用下面的连接方式:
// mongoose.connect('mongodb://eggadmin:[email protected]:27017/eggcms');


// 定义一个Schema,操作users集合
// Schema里面的对象和数据库表里面的字段需要一一对应
let UserSchema = mongoose.Schema({
  name: String,
  age: Number,
  status: Number
})

第五步:创建数据模型

定义好了 Schema,接下就是生成 Model。model 是由 schema 生成的模型,可以对数据库的 操作。

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/eggcms');

// 如果有账户密码需要采用下面的连接方式:
// mongoose.connect('mongodb://eggadmin:[email protected]:27017/eggcms');


// 定义一个Schema,操作users集合
// Schema里面的对象和数据库表里面的字段需要一一对应
let UserSchema = mongoose.Schema({
  name: String,
  age: Number,
  status: Number
})


// 定义数据库模型  操作数据库
// 注意:mongoose.model 里面可以传入两个参数也可以传入三个参数,mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema,参数 3:数据库集合名 称)
// 如果传入 3 个参数的话:模型默认操作第三个参数定义的集合名称
// 如果传入 2 个参数的话:这个模型会和模型名称相同的复数的数据库建立连接:如通过下面 方法创建模型,那么这个模型将会操作 users 这个集合。
// var User = mongoose.model('User',UserSchema);    // 默认会操作 users表(集合)
var User = mongoose.model('User',UserSchema,'users');  //默认会操作第三个参数配置的表  user表(集合)

第六步:操作数据库

增加数据,通过实例化User Molde 创建增加的数据,最后实例.save()

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/eggcms');

// 如果有账户密码需要采用下面的连接方式:
// mongoose.connect('mongodb://eggadmin:[email protected]:27017/eggcms');


// 定义一个Schema,操作users集合
// Schema里面的对象和数据库表里面的字段需要一一对应
let UserSchema = mongoose.Schema({
  name: String,
  age: Number,
  status: Number
})


// 定义数据库模型  操作数据库
// 注意:mongoose.model 里面可以传入两个参数也可以传入三个参数,mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema,参数 3:数据库集合名 称)
// 如果传入 3 个参数的话:模型默认操作第三个参数定义的集合名称
// 如果传入 2 个参数的话:这个模型会和模型名称相同的复数的数据库建立连接:如通过下面 方法创建模型,那么这个模型将会操作 users 这个集合。
// var User = mongoose.model('User',UserSchema);    // 默认会操作 users表(集合)
let User = mongoose.model('User',UserSchema,'users');  //默认会操作第三个参数配置的表  user表(集合)

// 增加数据
let u = new User({
  name: '李四',
  age: 23,
  status: 1
})
u.save((err) => {
  if (err) {
    console.log(err)
    return
  }
  console.log('增加数据成功')
})

查询users表的数据

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/eggcms');

// 如果有账户密码需要采用下面的连接方式:
// mongoose.connect('mongodb://eggadmin:[email protected]:27017/eggcms');


// 定义一个Schema,操作users集合
// Schema里面的对象和数据库表里面的字段需要一一对应
let UserSchema = mongoose.Schema({
  name: String,
  age: Number,
  status: Number
})


// 定义数据库模型  操作数据库
// 注意:mongoose.model 里面可以传入两个参数也可以传入三个参数,mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema,参数 3:数据库集合名 称)
// 如果传入 3 个参数的话:模型默认操作第三个参数定义的集合名称
// 如果传入 2 个参数的话:这个模型会和模型名称相同的复数的数据库建立连接:如通过下面 方法创建模型,那么这个模型将会操作 users 这个集合。
// var User = mongoose.model('User',UserSchema);    // 默认会操作 users表(集合)
let User = mongoose.model('User',UserSchema,'users');  //默认会操作第三个参数配置的表  user表(集合)

// 增加数据
let u = new User({
  name: '李四',
  age: 23,
  status: 1
})
u.save((err) => {
  if (err) {
    console.log(err)
    return
  }
  console.log('增加数据成功')
})


// 查询users表的数据
User.find({}, (err, doc) => {
  if (err) {
    console.log(err)
    return
  }
  console.log(doc)
})

更新数据

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/eggcms');

// 如果有账户密码需要采用下面的连接方式:
// mongoose.connect('mongodb://eggadmin:[email protected]:27017/eggcms');


// 定义一个Schema,操作users集合
// Schema里面的对象和数据库表里面的字段需要一一对应
let UserSchema = mongoose.Schema({
  name: String,
  age: Number,
  status: Number
})


// 定义数据库模型  操作数据库
// 注意:mongoose.model 里面可以传入两个参数也可以传入三个参数,mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema,参数 3:数据库集合名 称)
// 如果传入 3 个参数的话:模型默认操作第三个参数定义的集合名称
// 如果传入 2 个参数的话:这个模型会和模型名称相同的复数的数据库建立连接:如通过下面 方法创建模型,那么这个模型将会操作 users 这个集合。
// var User = mongoose.model('User',UserSchema);    // 默认会操作 users表(集合)
let User = mongoose.model('User',UserSchema,'users');  //默认会操作第三个参数配置的表  user表(集合)



// 更新数据
User.updateOne({
  '_id': '5cdc42953beb59420c5893c6'
}, {
  'name': '王五',
  'age': 11
}, (err, doc) => {
  if (err) {
    console.log(err)
    return
  }
  console.log(doc)
})

删除数据

const mongoose = require('mongoose');

mongoose.connect('mongodb://127.0.0.1:27017/eggcms');

// 如果有账户密码需要采用下面的连接方式:
// mongoose.connect('mongodb://eggadmin:[email protected]:27017/eggcms');


// 定义一个Schema,操作users集合
// Schema里面的对象和数据库表里面的字段需要一一对应
let UserSchema = mongoose.Schema({
  name: String,
  age: Number,
  status: Number
})


// 定义数据库模型  操作数据库
// 注意:mongoose.model 里面可以传入两个参数也可以传入三个参数,mongoose.model(参数 1:模型名称(首字母大写),参数 2:Schema,参数 3:数据库集合名 称)
// 如果传入 3 个参数的话:模型默认操作第三个参数定义的集合名称
// 如果传入 2 个参数的话:这个模型会和模型名称相同的复数的数据库建立连接:如通过下面 方法创建模型,那么这个模型将会操作 users 这个集合。
// var User = mongoose.model('User',UserSchema);    // 默认会操作 users表(集合)
let User = mongoose.model('User',UserSchema,'users');  //默认会操作第三个参数配置的表  user表(集合)



// 删除数据
User.deleteOne({
  '_id': '5cdc42953beb59420c5893c6'
}, (err, result) => {
  if(err){
    return console.log(err);
  }
  console.log(result)
})

mongoose 模块化

发士大夫打撒的

猜你喜欢

转载自www.cnblogs.com/LO-ME/p/10873174.html
今日推荐