数据库

数据库分类

1.关系型 mysql sqlserver orcal
2.非关系型 (文档数据库) mongodb nosql。。。
非关系型数据库的储存单元都是 类json 数据结构
mysql 不能储存对象 数组 表头固定
mongodb 啥都能存 每条数据长度不一

mongo数据库

1.安装数据库
下载安装
最后一步 install compass 不要勾选
推荐自定义安装
首先执行 mongo 如果没有问题 show dbs

2,解决方法
1.文件丢失 将bin 复制到安装的bin 目录
2.执行mongod 数据库文件丢失 创建数据文件 c:/data/db
3.mongod 开启数据库 (如果自启动 mongod 没有必须要执行)
mongo 终端(cmd) 连接数据库

数据库操作

mongodb 数据库名
mongod 开启mongodb 数据库
mongo 通过终端 命令行的方式连接数据库
mongodb node 一个插件 通过node 来连接数据库
mongoose node 插件 通过node连接数据库

数据库 db

增 use dbname 新建数据库 切换数据库 新建的数据库为空是一个临时的库
删 db.dropDatabase() 删除数据库
查 show dbs 查询所有的数据库
db 查询当前使用的db

集合(表) collection

增 db.createCollection(‘name’)
删 db.name.drop()
查 show collections

文档(数据) document

增 db.集合名.insert(obj)
删 db.集合名.remove({条件}) 如果是一个空对象 表示全部删除
改 db.集合名.update(查询条件,修改($set),修改全部{multi:true})
查 db.集合名.find(查询条件)
pretty() 将查询后的结果进行格式化
db.集合名.save()//插入数据,如果id存在则修改(覆盖)。

分页

db.user.find().skip(0).limit(2) 1-2 1页
db.user.find().skip(2).limit(2) 3-4 2页
db.user.find().skip(4).limit(2) 5-6 3页
db.user.find().skip((page-1)*pageSize).limit(pageSize)
.skip(n)表示跳过n个
.limit(n)表示(截取)选取n个

固值寻找

寻找age集合里面所有含有属性值为wscats的文档结果,相当于where name = ‘wscats’
db.age.find({name:“wscats”})

范值寻找

在这里插入图片描述

AND和OR寻找
寻找_id为1并且name为wscats的所有结果集
db.age.find(
{
$and: [
{"_id": 1}, {“name”: “wscats”}
]
}
)

寻找name为corrine或者name为wscats的所有结果集
db.age.find(
{
$or: [
{“name”: “corrine”}, {“name“: “wscats”}
]
}
)

AND和OR等结合
相当于语句where title = "wscats" OR ( title = "corrine" AND _id < 5)
db.age.find({
$or: [{
“title”: “wscats”
}, {
$and: [{
“title”: “corrine”
}, {
“_id”: {
$lte: 5
}
}]
}]
})

1 升序排列 .sort({键值(属性值):1})
-1 降序排列 .sort({键值(属性值):-1})
db.集合名.find().sort({键值(属性值):1})
age集合表重新根据_id主键进行降序排列
db.age.find().sort({

“_id”: -1
})

Node.js连接

通过node的mongoose 插件操作数据库

1.下载mongoose npm npm install mongoose

2.连接数据库
3.创建schema对象
4.将schema转化为数据模型
5.通过数据模型执行查询操作

2.连接数据库

var mongoose = require(‘mongoose’);
mongoose.connect(‘mongodb://localhost:27017/1823’); 1823是集合(表)的名字,必须加上
var db = mongoose.connection;// 获取连接对象进行监听
db.on(‘error’,(err)=>{
console.log(‘连接错误’)
});
db.on(‘open’, function() {
console.log(‘连接ok’)
});

3.创建schema 对象 理解成一个表头

var UserSchema = new mongoose.Schema({
name: String,
age :Number,
pass: String,
});

4.将schema转化为数据模型

let user = mongoose.model(‘user’, UserSchema); //参数1 是集合的名字 与数据模型关联的schema对象
这里的user就是新建的集合的名字。

5.进行数据库的操作

// user.insertMany([{name:‘网易3’,pass:123,age:16},{name:‘网易2’,pass:123,age:16}])
// .then((data)=>{
// console.log(data)
// })
// .catch((err)=>{
// console.log(err)
// })

user.find()
.then((data)=>{
console.log(data)
})
.catch((err)=>{
console.log(err)
})

删除

// user.deleteMany({name:‘网易3’,pass:123})
// .then((data)=>{
// console.log(data.deletedCount)

// })
// .catch((err)=>{
// console.log(err)
// })

// user.updateMany({age:16},{age:2000})
// .then((data)=>{
// console.log(data)

// })
// .catch((err)=>{
// console.log(err)
// })

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值