课时41-课时45笔记
source link: https://studygolang.com/articles/15987?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
课时41
delete()删除
删除一个集合:
db.collection.deleteOne()
删除一条数据
db.collection.deletMany();
删除全部(多个)
remove()删除
db.student.remove({name:"李四"});
删除所有的name:李四的数据
db.student.remove({sex:"男"},true);
只删除一条sex:男的数据 仅删除一条
db.student.remove({});
删除全部
数据库假删除:
db.student.insert([ {name:"张三",content:"今天心情好",isDel:0}, {name:"张三",content:"今天心情一般",isDel:0}, ]);
b21d2b7140562e21fcbe9c168e02da9.png
用户增加两条数据,但只保留后一条,删除前一条,这时候用到假删除 ,在添加数据时加上一个字段 isDel:0
所以当用户删除数据时候 执行的不是remove方法而是update方法
db.student.update({"_id" : ObjectId("5bd6a46f1eb7a22fa07cb382")},{ $set:{ isDel:1 } });
98cf763807e662cd724e6d65f1638fb.png
isDel:0
是表示用户没有删除 为1是表示用户已经删除
所以在查询的时候要筛选name和isDel条件即可
db.student.find({name:"张三",isDel:0});
查询到用户没有删除的数据:
121b7fc4d6f40af1de843359cdbf585.png
然后就可以实现假删除了。
课时42
MongoDB数据库联系一
- 创建并进入it 666数据库
use it_666
//创建db
//进入、显示库名 - 向数据库的colleges集合中插入六个文档(Html5, Java,Python,区块链,K12, <PHP,“世界上最好的编程语言">)
db.colleges.insert([ {name:"Html5"}, {name:"Java"}, {name:"Python"}, {name:"区块链"}, {name:"K12"}, {name:"PHP",intro:"世界上最好的编程语言"} ]);
-
查询colleges集合中的文档
db.colleges.find();
41dd1385029981699a709bb0a0cd64c.png
4.向数据库的olleges集合中插入一个文档(Golang)
db.colleges.insert({name:"Golang"});
c94fb71b7bab9c6afe0b6f9c055d389.png
5统计数据库colleges集合中的文档数量
db.colleges.find().length();
1a566a20c2b7e570cf70f18622a9a85.png
6.查询数据库colleges集合中name为HtmI5的文档
db.colleges.find({name:"Html5"});
19675cec3a78139638a97a7995ed4b6.png
7.向数据库colleges集合中的name为HtmI5的文档,添加一个intro属性,属性值为打通全栈任督二脉!"
db.colleges.update({name:"Html5"},{$set:{intro:"打通全栈任督二脉!"}});
dd9196d43a3406f89ab993ca0e80431.png
8.使用{name:"大数据"}替换name为"K12"的文档
db.colleges.update({name:"K12"},{$set:{name:"大数据"}});
[图片上传中...(f0814b43bd13b51faec23e840ff952a.png-fc4ff4-1540800474857-0)]
-
删除name为PHP的文档的intro属性
db.colleges.update({name:"PHP"},{$unset:{intro:1}});
daf75db6c0433e0e6b2c0794fff7bd4.png
课时43
-
向name为HtmI5的文档中,添加一个classes://{base: ["h5+c3"js"jQuery" "abc"],core:["三大框架","node.js"]}
db.colleges.update({name:"Html5"},{$set:{classes:{base:["h5+c3","js","jQuery","abc"],core:["三大框架","node.js"]}}});
816f34ecdaca808e23507270253fda3.png
- 查询有核心课程为三大框架的文档
db.colleges.find({"classes.core":"三大框架"});
9a8e009987e1558ccfb3f05d103f38b.png
- 向name为HtmI5的文档中,添加-个新的核心课程"微信小程序”
数据更新操作符$addToSet
加一个值到数组中去,只有当这个值不在数组内才增加$push
添加到数组尾部db.colleges.update({name:"Html5"},{$push:{"classes.core": "微信小程序"}});
67ee1a065e420fccf713fde32575cd0.png
- 向name为Html5的文档中,删除基础课程abc"
db.colleges.update({name:"Html5"}, {$pop:{"classes.base": "abc"}});
- 删除colleges集合
db.colleges.remove({});
课时44
批量数据的操作和修改
- 向集合中中插入10000个文档
var arr= []; for(var i=0;i<10000;i++){ arr.push({counter:i}); } db.demos.insert(arr); db.demos.find();
- 查询demos中counter为666的文档
db.demos.find({counter:666});
- 查询demos中counter小于66的文档
db.demos.find({counter:{$lt:666}});
- 查询demos中counter大T666的文档
db.demos.find({counter:{$gt:666}});
- 查询demos中counter大于66小于666的文档1120查吉demos集合中的前10余数据
db.demos.find({counter:{$gt:66, $lt:666}});
- 查石demos集合中的第1字到20条数据
db.demos.find().limit(10);
- 查春demos集合中的第2 1条到30条数据 分页功能 skip从多少条开始 limit每次查询多少条
db.demos.find().skip(0).limit(10);//第一页 从0条开始 每查询10条 db.demos.find().skip(10).limit(10);//第二页 从10条开始 每查询10条 db.demos.find().skip(20).limit(10);//第三页 从20条开始 每查询10条
课时45
- 创建company数据库将it666和section集合导入到数据库中
- 数据库导出:
Export Collection Data... - 数据库导入:
Import data Form File...
-
查询HTML5学院的所有老师
多集合查找
con ----------------职能部门编号
var cno = db.it666.findOne({cname: "html5学院"}).cno;//获取it666中cname是html学院字段的 cno db.section.find({cno: cno});//查找section 的cno是 1001的字段
-
查询Java学院的所有员工
同上 多表查询
var cno = db.it666.findOne({cname: "Java学院"}).cno;//获取it666中cname是Java学院字段的 cno db.section.find({cno: cno});//查找section 的cno是 1003的字段
- 查询工资大于15000的员工
db.section.find({wages:{$gt:15000}})
- 查询工资在10000 15000之间的员工
db.section.find({wages:{$gt:10000,$lt:15000}}) /*$gte 大于等于 $lte 小于等于*/
- 查询工资小于10000或大于25000的员工
db.section.find({$or:[//$or 或者 {wages: {$lt: 10000}}, {wages: {$gt: 20000}} ]})
-
为所有薪资低于10000的员工增加资1000元
$inc 为选择的value值自增
db.section.updateMany({wages:{$lt: 10000}}, {$inc:{wages: 1000}})
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK