######### 插入数据#########//单行插入
//db.comment.insert({"articleid":"100000","content":"今天天气真好,阳光明 媚","userid":"1001","nickname":"Rose","createdatetime":new Date(),"likenum":NumberInt(10),"state":null})//多行插入
//db.comment.insertMany([ {"_id":"1","articleid":"100001","content":"我们不应该把清晨浪费在手机上,健康很重要,一杯温水幸福你我 他。","userid":"1002","nickname":"相忘于江湖","createdatetime":new Date("2019-08- 05T22:08:15.522Z"),"likenum":NumberInt(1000),"state":"1"}, {"_id":"2","articleid":"100001","content":"我夏天空腹喝凉开水,冬天喝温开水","userid":"1005","nickname":"伊人憔 悴","createdatetime":new Date("2019-08-05T23:58:51.485Z"),"likenum":NumberInt(888),"state":"1"}, {"_id":"3","articleid":"100001","content":"我一直喝凉开水,冬天夏天都喝。","userid":"1004","nickname":"杰克船 长","createdatetime":new Date("2019-08-06T01:05:06.321Z"),"likenum":NumberInt(666),"state":"1"}, {"_id":"4","articleid":"100001","content":"专家说不能空腹吃饭,影响健康。","userid":"1003","nickname":"凯 撒","createdatetime":new Date("2019-08-06T08:18:35.288Z"),"likenum":NumberInt(2000),"state":"1"}, {"_id":"5","articleid":"100001","content":"研究表明,刚烧开的水千万不能喝,因为烫 嘴。","userid":"1003","nickname":"凯撒","createdatetime":new Date("2019-08- 06T11:01:02.521Z"),"likenum":NumberInt(3000),"state":"1"} ]);######### 查询数据 #########
//查询所有
//db.comment.find()
//查询articleid=100000
//db.comment.find({"articleid":""})
//db.comment.findOne({userid:"1003"})
//投影查询只显示指定的字段,1代表显示,0代表不显示
//db.comment.find({userid:"1003"},{userid:1,nickname:1,_id:0})
//查询所有数据,但是只显示nickname,userid
//db.comment.find({},{_id:0,userid:1,nickname:1})
//分页查询
//可以在find后面加个limit来指定返回的条数,默认20
//db.comment.find().limit(2)
//skip可以指定跳过的记录条数,前N个不要
//db.comment.find().skip(3)//排序查询投影显示,1为升序,-1为降序
//db.comment.find({},{userid:1,likenum:1}).sort({userid:1,likenum:-1})#########正则表达式查询#########
//正则的复杂条件查询
//查询内容包含开水的
//db.comment.find({content:/开水/})
//查询以专家开头的数据
//db.comment.find({content:/^专家/})######### 统计查询#########
//统计查询,查询所有数据
//db.comment.count()
//统计userid=1003的数据
//db.comment.count({userid:"1003"})#########比较查询#########
//$gt 大于,查询点赞数大于1000的数据
//db.comment.find({likenum:{$gt:1000}})
//$lt 小于,查询点赞数小于100的数据
//db.comment.find({likenum:{$lt:1000}})
//$gte 大于等于,查询点赞数大于等于1000的数据
//db.comment.find({likenum:{$gte:1000}})
//$lte 小于等于,查询点赞数小于等于1000的数据
//db.comment.find({likenum:{$lte:1000}})
//$ne 不等于,查询点赞数不等于1000的数据
//db.comment.find({likenum:{$ne:1000}})#########包含查询#########
//\$in 包含,查询userid包含1003,1004的数据
//db.comment.find({userid:{$in:["1003","1004"]}})
//$nin 不包含,查询userid不包含1003,1004的数据
//db.comment.find({userid:{$nin:["1003","1004"]}})
//查询内嵌文档的属性值
//查询movies=“寒战”的文档
//MongoDB支持直接通过内嵌文档的属性进行查询,如果要查询内嵌文档,可以通过.的形式来匹配
//如果要通过内嵌文档来对文档进行查询,此时属性名必须使用引号
//db.user.find({"hobby.movies":"寒战"})#########条件连接查询#########
//$and 且,查询评论集合中likenum大于等于1000并且小于3000的文档
//db.comment.find({$and:[{likenum:{$gte:1000}},{likenum:{$lt:3000}}]})
//$or 或,查询userid=1003或likenum小于等于1000的数据
//db.comment.find({$or:[{userid:"1003"},{likenum:{$lte:1000}}]})#########修改数据#########
//更新
//覆盖修改:会把符合条件的内容清空,只保留修改后的内容
//db.comment.update({_id:"1"},{linknum:NumberInt(1001)})
//局部修改:只修改指定的值,其他不变,默认只修改第一条匹配的数据
//db.comment.update({_id:"2"}, {$set:{likenum:NumberInt(899)}})
//局部修改,当multi=true的时候,会修改所有符合条件的数据
//db.comment.update({articleid:"100005"}, {$set:{likenum:NumberInt(1000)}},{multi:true})
//局部更新来删除某个key,这样查全表,把全表的linknum的key都删除了
//db.comment.update({},{$unset:{linknum:null}})
//列值增长的修改
//db.comment.update({articleid:"100005"},{$inc:{likenum:NumberInt(100)}},{multi:true})
//添加内嵌文档及属性
//给username为lisi的添加一个hobby:{cities:["beijing","shanghai","shenzhen"],movies:["寒战","肖申克的救赎"]}
//MongoDB的文档的属性值也可以是文档,当一个文档的属性值是一个文档时,我们称之为内嵌文档
//db.user.update({username:"lisi"},{$set:{hobby:{cities:["beijing","shanghai","shenzhen"],movies:["寒战","肖申克的救赎"]}}});#########删除数据#########
//删除文档
//删除指定条件的文档
//db.comment.remove({_id:"2"})
//删除集合的所有文档
//db.comment.remove({})#########常用命令小结#########
//选择切换数据库:use articledb
//插入数据:db.comment.insert({bson数据})
//查询所有数据:db.comment.find();
//条件查询数据:db.comment.find({条件})
//查询符合条件的第一条记录:db.comment.findOne({条件})
//查询符合条件的前几条记录:db.comment.find({条件}).limit(条数)
//查询符合条件的跳过的记录:db.comment.find({条件}).skip(条数)
//修改数据:db.comment.update({条件},{修改后的数据}) 或db.comment.update({条件},{$set:{要修改部分的字段:数据})
//修改数据并自增某字段值:db.comment.update({条件},{$inc:{自增的字段:步进值}})
//局部更新来删除某个key,这样查全表,把全表的linknum的key都删除了
//db.comment.update({},{$unset:{linknum:null}})
//删除数据:db.comment.remove({条件})
//统计查询:db.comment.count({条件})
//模糊查询:db.comment.find({字段名:/正则表达式/})
//条件比较运算:db.comment.find({字段名:{$gt:值}})
//包含查询:db.comment.find({字段名:{$in:[值1,值2]}})或db.comment.find({字段名:{$nin:[值1,值2]}}) 条件连接查询:db.comment.find({$and:[{条件1},{条件2}]})或db.comment.find({$or:[{条件1},{条件2}]})#########索引基础使用#########
//查询集合中存在的所有索引
//db.comment.getIndexes()//创建单索引,1代表升序,-1代表降序排列,可以指定name索引名称,也可以不指定系统默认生成
//db.comment.createIndex({userid:1},{name:"uid"})//创建复合索引
//db.comment.createIndex({articleid:1,nickname:-1})//索引的移除
//删除集合中userid字段的升序索引
//db.comment.dropIndex({userid:1})
//通过索引名称去删除索引
//db.comment.dropIndex("articleid_1_nickname_-1")
//删除集合中所有的索引,不会删除_id这个索引
//db.comment.dropIndexes()//执行计划,查看语句是否使用到了索引,主要看winningPlan是否为FETCH这种抓取的,而不是COLLSCAN全局扫描
//db.comment.find({userid:"1003"}).explain()//涵盖查询,索引里面涵盖了查询(投影查询)中需要的字段,这样就可以直接从索引中返回而不用再去查集合,性能很快
//winningPlan:PROJECTION_SIMPLE
//db.comment.find({userid:"1003"},{userid:1}).explain()#########练习1#########//1.创建集合
db.createCollection("user");//2.向集合中插入一个文档
db.user.insert({userid:NumberInt("1001"),username:"zhangsan",age:NumberInt(18),agent:"男"});//3.向user集合中插入多条文档
db.user.insertMany([{userid:NumberInt("1002"),username:"lisi",age:NumberInt(20),agent:"男"},{userid:NumberInt("1003"),username:"xiaohua",age:NumberInt(25),agent:"女"}]);//4.查询user集合中的文档
db.user.find();//5.查询user集合中username=zhangsan的文档
db.user.find({username:"zhangsan"});//6.查询user集合中username=lisi的文档,并添加address属性,属性值为广东,只修改address,其他不变
db.user.update({username:"lisi"}, {$set:{address:"广东"}});//7.使用username=zhangsan 替换为username=wangwu
db.user.update({username:"zhangsan"},{$set:{username:"wangwu"}},{multi:true});//8.删除username为lisi的address属性
db.user.update({username:"lisi"},{$unset:{address:1}});//9.给username为lisi的添加一个hobby:{cities:["beijing","shanghai","shenzhen"],movies:["寒战","肖申克的救赎"]}
//MongoDB的文档的属性值也可以是文档,当一个文档的属性值是一个文档时,我们称之为内嵌文档
db.user.update({username:"xiaohua"},{$set:{hobby:{cities:["guangdong","shanghai","shenzhen"],movies:["寒战","肖申克的救赎"]}}});//10.查询movies=“寒战”的文档
//MongoDB支持直接通过内嵌文档的属性进行查询,如果要查询内嵌文档,可以通过.的形式来匹配
//如果要通过内嵌文档来对文档进行查询,此时属性名必须使用引号
db.user.find({"hobby.movies":"寒战"});//11.向username=lisi的moives文档中添加一个属性“喜剧之王”
//$push向数组中添加一个新的元素,无视数组中是否存在该属性,可以一直添加
//$addToSet 向数组中添加一个新的元素,如果数组中已经存在了该元素则添加失败
db.user.update({username:"lisi"},{$push:{"hobby.movies":"喜剧之王"}});//12.删除属性cities=guangdong的文档
db.user.remove({"hobby.cities":"guangdong"});//13.删除user集合
db.numbers.drop();//14.向numbers集合插入2W条数据
//在插入数据前,先把所有数据添加到一个数组,再一次性执行插入,可以大大的提升性能
var arry = [];
for (var i=1; i<=20000; i++){arry.push({num:i});
}
db.numbers.insert(arry)//练习2
//1.查询numbers中num=500的文档
db.numbers.find({num:500})
db.numbers.find({num:{$eq:500}})
//2.查询numbers中num>5000的文档
db.numbers.find({num:{$gt:5000}})
//3.查询numbers中num<500的文档
db.numbers.find({num:{$lt:500}})
//4.查询numbers中40<num<50的文档
db.numbers.find({$and:[{num:{$gt:40}},{num:{$lt:50}}]})
db.numbers.find({num:{$gt:40,$lt:50}})
//5.查询numbers中num>=19996的文档
db.numbers.find({num:{$gte:19996}})
//6.查询numbers中前10条数据
db.numbers.find({}).limit(10)
//7.查询numbers中第11条数据到20条数据
db.numbers.find({}).skip(10).limit(10)
//7.查询numbers中第21条数据到30条数据
db.numbers.find({}).skip(20).limit(10)//一对一关系
db.wifeAndHusband.insert(
[{name:"黄蓉",hasband:{name:"郭靖"}}])//一对多关系
db.wifeAndHusband.insert({name:"张三",order:["order001","order002"]})//练习,实现订单的一对多的关系
//添加两个表,根据userid进行数据关联
db.user.insertMany([{name:"zhangsan"},{name:"lisi"}])
db.order.insertMany([{order_code:["001","002","003"],user_id:ObjectId("612f4943cd1300008900acee")}])
//查询用户zhangsan的所有订单
var userid = db.user.findOne({name:"zhangsan"})._id;
db.order.find({user_id:userid});//多对多关系
//db.catgory.insertMany([{name:"厨电"},{name:"冰箱"},{name:"衣柜"}])db.sku.insertMany([{    name:"油烟机",category_id:[ObjectId("612f4c9bcd1300008900acf4"),ObjectId("612f4c9bcd1300008900acf5")]},{ name:"保鲜冰箱",category_id:[ObjectId("612f4c9bcd1300008900acf4"),ObjectId("612f4c9bcd1300008900acf5")]},{    name:"衣柜",category_id:[ObjectId("612f4c9bcd1300008900acf5")]}
])//练习3//创建表dept和emp
//db.dept.insertMany([
//{deptno:10,dname:"财务部",loc:"北京"},
//{deptno:10,dname:"办公室",loc:"上海"},
//{deptno:10,dname:"销售部",loc:"广州"},
//{deptno:10,dname:"运营部",loc:"深圳"}
//]);//db.emp.insertMany([
//{empno:"7300",ename:"林冲1",job:"职员",mgr:"7302",hiredate:ISODate("2012-11-02 07:58:51"),sal:NumberInt(800),depno:20},
//{empno:"7301",ename:"林冲2",job:"销售",mgr:"7302",hiredate:ISODate("2021-09-01 16:00:00"),sal:NumberInt(1800),depno:20,comm:1000},
//{empno:"7302",ename:"林冲3",job:"经理",mgr:"7303",hiredate:ISODate("2021-09-01 16:00:00"),sal:NumberInt(3800),depno:20,comm:null},
//{empno:"7303",ename:"林冲4",job:"董事长",mgr:"7902",hiredate:ISODate("2021-09-01 16:00:00"),sal:NumberInt(88800),depno:20,comm:null},
//{empno:"7304",ename:"林冲5",job:"分析师",mgr:"7303",hiredate:ISODate("2021-09-01 16:00:00"),sal:NumberInt(5800),depno:20,comm:null},
//{empno:"7305",ename:"林冲6",job:"销售",mgr:"7302",hiredate:ISODate("2021-09-01 16:00:00"),sal:NumberInt(1000),depno:20,comm:200}
//])//1.查询工资小于2000的员工
//db.emp.find({sal:{$lt:2000}})
//2.查询工资在1000-2000之间
//db.emp.find({sal:{$lt:2000,$gt:1000}})
//3.查询工资小于1000或大于2500的员工
//db.emp.find({$or:[{sal:{$lt:1000}},{sal:{$gt:2500}}]})
//查询财务部所有员工10
//var depno = db.dept.find({dname:"财务部"})[0].deptno;  //find返回的是数组,需要索引取值
//db.emp.find({depno:depno})
//给工资小于2000的员工增加500元
//db.emp.updateMany({sal:{$lt:2000}},{$inc:{sal:500}})

MongoDB的基础指令和练习笔记相关推荐

  1. MongoDB基础指令

    MongoDB基础指令 1.创建数据库 2.删除数据库 3.创建集合 4.删除集合 5.插入文档(数据) 6.更新数据 7.删除文档 8.查询文档 9.条件操作符 10.Type操作符 1.创建数据库 ...

  2. 开发笔记 —— Linux 下的基础指令

    Linux 下的基础指令 基本使用 远程客户端 注销&关机命令 注销 重启系统 关闭系统 文件系统指令 文件和目录 练习 文件归档(tar) 软件安装 文件下载 手动下载 命令下载 使用 TA ...

  3. 南大袁春风计算机系统基础(一)笔记

    南大袁春风计算机系统基础(一)笔记 一.计算机系统基本组成与基本功能 冯.诺依曼结构计算机模型 冯.诺依曼计算机结构的特点 计算机的指令和数据 二.程序开发和执行过程简介 程序开发的发展过程 典型程序 ...

  4. 鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一)

    鸟哥的LINUX私房菜 基础学习篇 读书笔记 -- 第零章 计算机概论 (一) 第零章 计算机概论 0.1 电脑:辅助人脑的好工具 0.1.1 计算机硬件五大组成部分 0.1.2 一切设计的起点: C ...

  5. Docker基础下(学习笔记)

    5. Docker 容器数据卷 5.1 容器数据卷是什么 先来看看Docker的理念: 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的. 容器之间希望有可 ...

  6. #飞特STS3215舵机测试与使用记录--附带基础样例-记录笔记-第三章

    ##飞特STS3215舵机测试与使用记录--附带基础样例-记录笔记-第三章 前言说明 协议与后期验证 细节以及遇到问题 (1)舵机可以摆动问题 (2)舵机是否能到达指定位置 (3)舵机在外力会出现移动 ...

  7. linux基础概念和个人笔记总结(6)

    防伪码:曾经梦想仗剑走天涯,回过头,却发现还是放不下家的牵挂 后续理论的验证图文详解,我会更新,希望大家可以参考 第十一章 FTP文件传输服务 1.FTP连接 控制连接:tcp21端口,用于发送ftp ...

  8. os-cocos2d游戏开发基础-进度条-开发笔记

     os-cocos2d游戏开发基础-进度条-开发笔记(十)   ios-cocos2d游戏开发基础-游戏音效-开发笔记(九)       ios-cocos2d游戏开发基础-CCLayer和Touch ...

  9. 51单片机系列——基础指令

    这学期开始学习51单片机,感觉比汇编简单,关键是51的汇编有一个好的ide,练习起来也比较方便,这个系列主要记录51的学习经验.下面是基础指令的练习: org 0000h     ljmp main ...

最新文章

  1. ArcEngine创建字段集
  2. 线性代数 第四章 向量组的线性相关性
  3. boost::logic::tribool相关用法的测试程序
  4. [LeetCode] Palindrome Number Valid Palindrome - 回文系列问题
  5. 你还在 new 对象吗?Java8 通用 Builder 了解一下?
  6. 《Non-invasive Fetal ECG Signal Quality Assessment for Multichannel Heart Rate Estimation》论文解读-废弃
  7. 人工神经网络matlab啊6,MATLAB人工神经网络教程
  8. JAVA 分布式环境 Redis互斥锁
  9. 迟到的,2016年终总结
  10. Tornado之异步authenticated
  11. JS之iscroll.js的使用详解
  12. tensorflow.python.framework.tensor_shape.TensorShape 类
  13. kafka jar包_Windows环境下Flink消费Kafka实现热词统计
  14. 博弈论与最优化的关系
  15. 手把手教你搭建基于 MarkDown 的 Wiki 系统
  16. oracle lob值是什么,关于Oracle数据库LOB大字段总结
  17. vue项目添加百度统计及设置埋点
  18. python并行编程 - 线程篇
  19. 【华为OD机试-按身高和体重排队-Java】
  20. [转载]2007热点技术职位排行及点析

热门文章

  1. SAP 启动物料帐后不可更改物料价格的处理方法
  2. jemter使用beanshell的几种方法
  3. 软件复用的优点,举例描述支持软件复用的方法和内容。
  4. 移动端框架 - Bootstrap
  5. python数据分析做什么作业好_知识星球 | 说说我为什么要做『python数据分析』社群...
  6. VMware虚拟机使用Ubuntu全屏问题
  7. 【官方】中国工商银行电子银行业务收费标准
  8. 为什么总显示连接服务器失败怎么回事,为什么总是出现"与总服务器连接失败"的字样 – 手机爱问...
  9. Maven报错Original error: Could not transfer artifact
  10. VS code 设置多行注释快捷键