mongoose

通过关系型数据库的思想来设计非关系型数据库,基于MongoDB

1. 安装

npm i mongoose --save

2. 引入并连接数据库

const mg = require('mongoose');
mg.connect('mongodb://admin:1234@loacalhost:27017/eggcms');

3. 定义Schema

理解为表的结构,每个schema会映射到一个collection,它不具备操作数据库的能力

let uSm = mongoose.Schema({
	name:String,
	age:Number,
	status:'number'
})

4. 创建数据模型

定义好schema,接下来是生成model,model是由schema生成的模型,可以对数据库进行操作
**注意:**mongoose.model里面可以传入2个也可以3个参数
mongoose.model(参数1:模型名称(首字母大写),参数2:Schema)

如果传入两个参数的话这个模型会和模型名称相同的复数的数据库建立连接;如通过下面的方法创建模型,这个模型会操作users这个集合

如果传入三个参数的话模型会默认操作第三个参数定义的集合名称

let User = mongoose.model('User',UserSchema)

5. 查找数据

User.find({},(err,docs)=>{
	if(err){
		console.log(err)
		return
	}
})

增删改查

// 1. 引入mongoose
const mongoose = require('mongoose')

// 2. 建立连接(连接user数据库库)
// useNewUrlParser这个属性会在url里识别验证用户所需的db,需指定
mongoose.connect('mongodb://127.0.0.1:27017/user', { useUnifiedTopology: true }, (err, res) => {
  if (err) {
    console.log('连接失败', err);
    return
  }
  console.log('数据库连接成功!');
})

// 3. 操作haha表(集合)  定义Schema  Schema里面的对象和数据库表里的字段需要一一对应

let UserSchema = mongoose.Schema({
  uname: String,   //可以指定默认参数
  age: Number
})

// 4. 定义数据库模型 操作数据库
// **注意** model里的第一个参数 1.首字母大写 2. 要和数据表名称对应

let User = mongoose.model('User', UserSchema, 'haha')   //第三个参数指定操作的表


// 5.查询haha表数据 - find()
User.find({}, (err, res) => {
  if (err) {
    console.log(err);
    return
  }
  console.log(res);
})

// 新增数据 - 由数据库模型写数据,然后save()
// let u = new User({
//   uname: 'fdsagq',
//   age: 12
// })
// u.save((err) => {
//   if (err) {
//     console.log(err);
//     return
//   }

//   console.log('新增成功');
// })


// 修改数据 - 条件,修改后的值,回调  - update
User.updateOne({ uname: '123' }, { uname: 'xixi' }, (err, res) => {
  if (err) {
    console.log(err)
    return;
  }
  console.log('修改成功!');
})

// 删除数据  - delete
// User.deleteOne({ "_id": "5ffd3a2ec1cb6a32044a40b0" }, (err, res) => {
//   if (err) {
//     return console.log(err);
//   }

//   console.log(res);
// })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值