数据库(Database)基本概念:html
为何都采用数据库来储存数据:web
###数据库分类sql
特征: 使用键值(Key Value)储存数据; MongoDB的逻辑结构是一种层次结构,主要由:文档(document)、集合(collection)、数据库(database)这三部分组成的。mongodb
关系型数据库和非关系型数据库区别: 关系型数据库比较结构化,操做不是很灵活,菲关系型数据库操做灵活,但不适合大型数据存储,比较适合微架构,二者是相辅相成的关系 数据库
非关系型数据库使用方面:json
非关系型数据库主要适合小微型架构的使用数组
MongoDB(非关系型数据库):安全
安装: 下载:www.mongodb.com/ 偶数是稳定版,奇数是开发版 最好下载64位的系统版本的bash
配置环境变量:服务器
sc.exe create MongoDB binPath= "\"F:\MongoDB\Server\3.2\bin\mongod.exe\" --service --config= \"F:\MongoDB\Server\3.2\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
复制代码
主要是让MongoDB一直运行在内存中 参考资料: www.cnblogs.com/wzlblog/p/6… www.cnblogs.com/chenlq/p/65…
MongoDB的组成:
基本指令: show dbs
显示当前全部的数据库 use
数据库名 进入到指定数据库 db
显示当前所在的数据库 show collections
显示数据库中的全部集合
使用管理员打开 cmd 输入 mongo
进入MongoDB的环境 进入MongoDB的环境才能执行MongoDB的命令 而后使用命令行进行CRUD(增删改查): db.<collection>.insert(doc)
举例子: 想school数据库中的学生集合student中插入一个新的学生对象 增长一条数据: db.student.insert({id:"001",name:"znl",age:18,sex:“男”})
在当前的集合(school)中新建一条数据
查询一条数据: db.<collection>.find();
如:db.student.find();
回车 就能查询student下的全部数据 插入多条数据:
db.集合名.insert([
{name:"张三",age:18,sex:"man"},
{name:"张三",age:18,sex:"man"},
{name:"张三",age:18,sex:"man"},
{id:18,name:"张三",age:18,sex:"man"}
]);
复制代码
插入多条数据时把多条语句放在一个数组里 插入可随便插入 没必要拘泥于字段是否相同 当插入的字段不存在时会自动建立该字段
查看更多更多操做:www.mongodb.org.cn/manual/
然而一直使用命令行操做是很麻烦的事情,因此推荐使用NOSQL可视化工具 安装可视化工具下载地址:www.mongodbmanager.com/download
可视化工具 查找功能: 插入(insert)语句:
db.student(集合名字).insert([
{id:1,name:"znl",age:18},
{id:1,name:"znl",age:18},
]);
复制代码
查询语句: db.student(集合name).find();
设定条件查询: db.student.find({ "_id" : ObjectId("5bd01c825f0d528d36a2c06f")});
查询id对应的数据 db.student.find({age:18,name:"张三"});
查询全部的age是18而且name是张三的人 db.student.findOne({age:18,name:"张三"});
查询单条符合条件的数据
操做符-查询有多少条数据: db.student.find().count();
或 db.student.find().length();
返回数据总条数
查询符合条件数据的条数: db.student.find({name:"张三"}).length();
返回符合name:"张三"的条数
更新原有的字段的数据:
db.student.update({"name":"张三"},{$set:{
name:"刘五",
age:45
}});
复制代码
把匹配到的name:"张三"
的数据都更新成 name:"刘五", age:45
也能够新增没有的字段 直接写入就能够 $set :有这个字段就修改 没有这个字段就新增
删除一个字段:
db.student.update({"name":"张三"},{$unset:{
age:1
}});
复制代码
查询name:张三
的一条数据 而后删除它的age字段
修改多条:
db.student.updateMany({"sex":"man"},{$set:{
aihao:"玩游戏"
}});
复制代码
把符合sex:man
的语句都新增(修改)一条aihao:"玩游戏"
$set :有则修改 无则新增
更新多条数据方法2:
db.student.update({name:"张三"},{$set:{
name:"王五"
}}, {
multi:true
});
复制代码