Nodejs-Node操作MongoDB-mongodse

Node操作MongoDB

一、mongoose介绍

mongoose是Node环境下异步操作mongodb数据库的扩展,仅限于Node环境下使用。

使用mongoose操作mongodb数据步骤:

使用npm安装mongoose
导入模块,连接mongodb数据库
定义Schema (类似于使用mysql时定义表结构)
定义model
使用model进行数据增删改查操作

文档网址:http://www.mongoosejs.net/docs/index.html

二、链接数据库

npm安装mongoose

npm i -S mongoose
//导入模块
const mongoose = require('mongoose')
//连接数据库 返回promise对象
mongoose.connect('mongodb://localhost:27017/mydb', { useNewUrlParser: true, useUnifiedTopology: true })

//connect方法参数2在新版本需添加,否则会有警告提示
useNewUrlParser:
//当前URL字符串分析器已弃用,将在将来的版本中删除。要使用新的解析器,请将选项{usenewurlparser:true}传递给mongoclient.connect。

useUnifiedTopology:
//当前服务器发现和监视引擎已弃用,将在将来的版本中删除。要使用新的服务器发现和监视引擎,请将选项{useUnifiedTopology:true}传递给mongoclient构造函数

在这里插入图片描述

三、定义Schema

Schema是mongoose中会用到的一种数据模式,可以理解为数据表结构的定义;每个schema会映射到mongodb中的一个集合,它不具备操作数据库的能力。Schema中定义数据校验,默认值,字段名,字段类型等特性。

// 创建用户集合规则
const UserSchema = new mongoose.Schema({
  // 字段名/域名称
  name: {
	// 指字域类型
type: String,
// 必填字段
required: true,
// 字段最小长度  minlength 用于字符串类型
    minlength: 2
  },
  age: {
type: Number,
// 默认值
	default:10,
	// 字段最小值 min用于数字类型
    min: 1
  },
  pwd: String,
  email: String,
  // 定义此字段为 字符串数组类型
  hobbies: [String]
})

四、定义model

model 是由schema 生成的模型,可以对数据库的操作

// 参数1:model名称
// 参数2:schema名称
// 参数3:操作的数据集合   如果参数3没有填写则以 参1的复数形式为操作数据集合名称
const UserModel = mongoose.model('User', UserSchema, 'users')

//模型curd相关方法
Model.insertMany({key:value})
Model.deleteMany({条件},err=>{})
Model.deleteOne({条件},err=>{})
Model.countDocuments({条件})
Model.find({条件},{可选字段返回:0/1},{skip:0,limit:10})
Model.findOne({条件},{可选字段返回:0/1})
Model.updateMany({条件},{$set:{key:value}},res=>{})
Model.updateOne({条件},{$set:{key:value}},res=>{})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值