本文主要是介绍【前端29_Mongo】芒果数据库使用及常用操作、Mongoose 对数据的增删改查,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 非关系性数据库:Mongo
- Mongo
- 介绍
- 举个栗子:教学
- 常用操作
- 连接数据库
- 查看所有数据库
- 切换数据库
- 展示数据库中的集合
- 展示集合中的所有文档
- 删除集合中的所有文档
- Mongoose 插件
- 建立文档结构 Schema
- 操作
- 添加数据
- 删除数据
- 查数据
- 修改数据
非关系性数据库:Mongo
Mongo
介绍
- 是一种非关系性数据库,不像
MySQL
那样有很多条条框框的约束,想怎么存就怎么存。 - 什么叫数据库,集合,文档?请看下面的栗子。
举个栗子:教学
- 前提:我想创建一个论坛,论坛里又有很多用户,所以我需要一个论坛数据库,其中还要一个用户集合(表)。
- 然后切换数据库,并查看当前数据库中的集合
- 我们可以通过
db.集合名.find()
方法查看集合中的所有文档(集合中的每条信息叫做文档)
常用操作
连接数据库
mongo
查看所有数据库
show dbs
切换数据库
use 数据库名称
展示数据库中的集合
show collections
展示集合中的所有文档
db.users.finds()
删除集合中的所有文档
> db.users.drop()
true
Mongoose 插件
官方定义如下:编写MongoDB验证,转换和业务逻辑是非常麻烦的. 所以我们发明了Mongoose.
我个人的理解:就是类似JavaScript
和jQuery
的关系。Mongoose
相当于jQuery
。
- 数据库是不需要输入命令的时候建立的,它是在你插入数据的时候就给你建立的
建立文档结构 Schema
- 用户表中的用户信息不能是没有规律的吧,需要有用户名,性别,年龄等等信息,我们需要这样一个规范,用来更好的设计,储存数据库,方便以后的查阅,这就引入了文档结构 Schema
- 类似一下的感觉
- 首先在后台中,新建一个文件夹,叫啥随便你,这个文件夹作用是:用来存储文档的格式,也就是规定了每条数据都有啥属性。
- 这个
js
文件连接了数据库,并且引入了mongoose
插件 - 记得最后要导出,导出的名字不要写成复数,也就是我上图中的
module.exports = User
,因为插件会帮你转成复数
const mongoose = require('mongoose')
const dbName = 'myWeibo'mongoose.connect(`mongodb://localhost:27017/${dbName}`, {useNewUrlParser: true, useUnifiedTopology: true})// 设置文档结构
var Schema = mongoose.Schema;
var userSchema = new Schema({username:String,psw:String
})
const User = mongoose.model('User', userSchema)
module.exports = User
操作
添加数据
- 需要先引入文档结构
- 然后通过
.save
方法保存
// 引入用户表格式 Schema
// weiboUser 是我的文档结构的名字,你的自己看看是啥
const weiboUser = require('../module/weiboUser')
new weiboUser(需要保存的数据).save((err, ret) => {if(err){// 保存失败}else{// 保存成功}
})
删除数据
根据条件删除文档
weiboUser.remove({'username': '王先生'},{password:'123'
}, function (err,ret) {if(err) {console.log('删除失败')} else {console.log('删除成功')console.log(ret);// { n: 1, ok: 1, deletedCount: 1 }}
})
查数据
- 可以通过
文档结构.find(查询的数据,回调函数(err, ret){})
来查询数据,其中ret
就是查询到的文档(数据) - 也可以查询一个
findOne()
weiboUser.find({'username':data.username}, (err, ret) => {if(ret === null) {// 如果没查到} else {// 如果查到了}
})
修改数据
通过id
来修改数据
其中的ret
返回的是修改前的数据内容
// 删除
weiboUser.findByIdAndUpdate('5effddd9630b7d430c4e79aa',{psw:'123'
}, function (err,ret) {if(err) {console.log('修改失败')} else {console.log('修改成功')console.log(ret);// 他会返回修改前的数据// { _id: 5effddd9630b7d430c4e79aa, username: '王先生', psw: '1', __v: 0 }}
})
这篇关于【前端29_Mongo】芒果数据库使用及常用操作、Mongoose 对数据的增删改查的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!