文章目录
非关系性数据库:MongoMongo介绍举个栗子:教学常用操作连接数据库查看所有数据库切换数据库展示数据库中的集合展示集合中的所有文档删除集合中的所有文档
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方法保存
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
);
}
})
查数据
可以通过文档结构.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
);
}
})