MongoDB数据库
属于关系型数据库NoSQL的一种,存储的数据为JSON数据
MongoDB数据库的基本数据结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DUEU0Jaa-1632017595104)(C:\Users\14940\AppData\Roaming\Typora\typora-user-images\image-20210209111151827.png)]
MongoDB基础使用
-
使用mldn数据库
实际上不会创建数据库,只有在数据库里保存集合数据的时候才算是创建完成数据库
use mldn
-
创建一个集合
这个时候mldn数据库才会真正的存在。
db.createCollection("emp");
-
写入一条数据
插入时自动创建集合
var deptDate = { "deptnp" : 20, "dname" : "研发部", "loc" : "深圳", "avg" : 8000 } db.dept.insert(daptDate) //添加不规则数据,且没有查看集合结构的语法 db.dept.insert({"deptno":10,"dname":"财务部","loc":"北京"})
-
查看集合
show collections
-
查看emp表数据
语法:db.集合名称.find({ 若干条件})
MongoDB可以随意扩充数据,不会有限制
db.dept.find()
-
关于id的问题
关于MongDB集合中的每一行记录都会自动生成"_id":"60220135a96723c22ca227d2"数据,这个数据组成是:"时间戳 + 机器码 + PID + 计数器 " ,这个ID的信息是MongonDB数据库自己为用户生成的,每行数据唯一。
-
查看一个信息
db.dept.findOne()
-
删除数据
db.dept.remove({"_id" : ObjectId("6021ff40a96723c22ca227d1")})
-
更新数据
var deptDate = { "deptnp" : 3203, "dname" : "研发部", "loc" : "深圳", "avg" : 81000 } db.dept.update({"_id" : ObjectId("60220135a96723c22ca227d2")}, deptDate)
-
删除集合
语法:db.集合名称.drop()
db.dept.drop();
-
删除数据库
db.dropDatabase
清除屏幕数据
cls
数据操作
数据增加
//增加一个简单数据
db.infos.insert({"url":"www.mldn.cn"})
//增加数组
db.infos.insert([{"url":"www.mldn.cn"},{"url":"www.ddd.cn"}])
//写入可以使用js语法
for(var x=0; x<10; x++){
db.infos.insert({"url":"www."+x+".com"})
}
//如果数据很多时,不会全部列出,只会列出部分内容,输入it即可继续查看
数据查询
然后的数据库中,数据查询都是最麻烦的,而在MongoDB数据库中,对于查询的支持非常到位,包含有有关系运算,逻辑运算,数组运算,正则运算。
核心语法:db.集合名称.find({查询条件}[,{设置显示的字段}])
对应设置的显示字段严格来讲就称为数据的投影操作,如果不需要显示的字段设置0,需要显示的设置1 。
//基本查询
db.infos.find();
//查询url为"www.mldn.cn"的数据,查找相等的JSON数据
db.infos.find({ "url":"www.mldn.cn" });
//当不想显示_id
db.infos.find({ "url":"www.mldn.cn" },{"_id":0});
//db.infos.find({ "url":"www.mldn.cn" },{"_id":0,"url":1});
//大部分情况下,投影操作意义不大,也可以使用pretty()函数进行漂亮显示
db.infos.find({ "url":"www.mldn.cn" }).pretty();
//数据多的时候才可以显示出华丽的显示效果
//查询单个
db.infos.findOne({ "url":"www.mldn.cn" })
关系运算
定义一个学生信息集合
db.student.insert({"name":"张三","sex":"男","age":23,"score":89,"address":"海淀区"})
db.student.insert({"name":"李四","sex":"女","age":19,"score":59,"address":"超越区"})
db.student.insert({"name":"王五","sex":"女","age":14,"score":60,"address":"西城区"})
db.student.insert({"name":"赵六","sex":"男","age&