非关系性数据库:Mongo Mongo 介绍
是一种非关系性数据库,不像MySQL
那样有很多条条框框的约束,想怎么存就怎么存。
什么叫数据库,集合,文档?请看下面的栗子。举个栗子:教学
前提:我想创建一个论坛,论坛里又有很多用户,所以我需要一个论坛数据库,其中还要一个用户集合(表)。
然后切换数据库,并查看当前数据库中的集合
我们可以通过db.集合名.find()
方法查看集合中的所有文档 (集合中的每条信息叫做文档)
常用操作 连接数据库
查看所有数据库
切换数据库
展示数据库中的集合
展示集合中的所有文档
删除集合中的所有文档
Mongoose 插件
官方 定义如下:编写MongoDB验证,转换和业务逻辑是非常麻烦的. 所以我们发明了Mongoose.
我个人的理解:就是类似JavaScript
和jQuery
的关系。Mongoose
相当于jQuery
。
数据库是不需要输入命令的时候建立的,它是在你插入数据的时候就给你建立 的
建立文档结构 Schema
用户表中的用户信息不能是没有规律的吧,需要有用户名,性别,年龄等等信息,我们需要这样一个规范,用来更好的设计,储存数据库,方便以后的查阅,这就引入了文档结构 Schema
类似一下的感觉
首先在后台中,新建一个文件夹,叫啥随便你,这个文件夹作用是:用来存储文档的格式 ,也就是规定了每条数据都有啥属性。
这个js
文件连接了数据库,并且引入了mongoose
插件
记得最后要导出,导出的名字不要写成复数 ,也就是我上图中的 module.exports = User
,因为插件会帮你转成复数1 2 3 4 5 6 7 8 9 10 11 12 13 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
方法保存1 2 3 4 5 6 7 8 9 10 const weiboUser = require ('../module/weiboUser' )new weiboUser(需要保存的数据).save((err, ret ) => { if (err ) { }else { } })
删除数据 根据条件删除文档
1 2 3 4 5 6 7 8 9 10 11 weiboUser.remove({'username' : '王先生' },{ password:'123' }, function (err,ret ) { if (err ) { console .log('删除失败' ) } else { console .log('删除成功' ) console .log(ret); } })
查数据
可以通过文档结构.find(查询的数据,回调函数(err, ret){})
来查询数据,其中ret
就是查询到的文档(数据)
也可以查询一个findOne()
1 2 3 4 5 6 7 weiboUser.find({'username' :data.username}, (err, ret ) => { if (ret === null ) { } else { } })
修改数据 通过id
来修改数据 其中的ret
返回的是修改前的数据内容
1 2 3 4 5 6 7 8 9 10 11 12 13 weiboUser.findByIdAndUpdate('5effddd9630b7d430c4e79aa' ,{ psw:'123' }, function (err,ret ) { if (err ) { console .log('修改失败' ) } else { console .log('修改成功' ) console .log(ret); } })