数据库

use mydb   //创建数据库,有则切换该数据库
db.dropDatabase()  //删除数据库
db    //显示当前位置
show dbs  //查看数据库列表
# mongo wu  //直接登录mongo并进入wu数据库db.stats  //显示当前数据库状态
db.version()  //当前db版本
db.getMongo()  //当前db的链接机器地址
db.getPrevError() //查询之前的错误信息
db.resetError() //清除错误记录

集合

db.createCollection("wu"); //创建集合
db.zhi.insert({name:"zhi",age:8});  //创建集合并插入数据//创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个
db.createCollection("mycol", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )db.zhi.drop(); //删除集合show tables;  //显示集合
show collections;  //显示集合db.zhi.renameCollection("wu")  //集合重命名
db.zhi.count()  //查询当前集合的数据条数
db.zhi.dataSize() //集合数据大小(字节)
db.zhi.totalIndexSize()  //查看集合索引大小
db.zhi.totalSize()  //显示集合大小(索引,数据)
db.zhi.stats()  //显示集合状态
db.printCollectionStats()  //当前db所有集合的状态信息

文档

插入数据

插入数据方法一:
db.zhi.insert({
name:'lufei',
sex:'man',
destination:'haizeiwang',
team:['suolong','xianjishi','shengping']})方法二:
定义变量
man=({name:'aishi',
... sex:'man',
... age:'18'})
db.col.insert(man)方法三:
一个集合插入多文档
> db.zhi.insert([
{book:'huanshu',price:'18',quantity:'good'},
{woman:'chang teacher',sex:'nv',service:[{server1:'kuaicang',price:666},{server2:'baoye',price:999}]}])
//[{},{},{}],[]作用是包含多个{}且每个表的列可以不相同db.zhi.save()  //具有插入和更新数据功能
//将col文档数据 替换为  以下数据(内容自己创建)
>db.zhi.save({
"_id" : ObjectId("222"),
"title" : "MongoDB",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "Runoob",
"url" : "http://www.runoob.com";,
"tags" : [
"mongodb",
"NoSQL"
],
"likes" : 110
})

删除文档

# 语法:
db.collection.remove()#直接将条件为title':'MongoDB 教程' 的文档整个删除
db.col.remove({'title':'MongoDB 教程'})#只删  第一个 满足该条件 文档
db.col.remove({'title':'MongoDB 教程'},1)#删除所有数据
db.col.remove({})

查询文档

db.zhi.find()   //集合zhi的数据
db.duobiao.findOne()  #显示一行
db.zhi.find().pretty() //有格式输出,集合zhi所有文档
db.zhi.find({title:"wzs"}).pretty() //集合zhi中,title:“wzs”文档显示满足sex:man 或 title:wzs条件文档
db.col.find({$or:[{sex:"man"},{title:'wzs'}]}).pretty()类似常规 SQL 语句为:'where likes>50 AND (by = '菜鸟教程' OR title = 'MongoDB 教程')'
db.col.find({"likes": { $gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()db.col.find({"likes" : {$gt : 100}})
类似于SQL语句:
Select * from col where likes > 100;
$gte 相当于  >=
$lte 相当于   <=
$ne 相当于   !=db.col.find({likes : {$lt :200, $gt : 100}})
#类似于SQL语句:
Select * from col where likes>100  AND  likes<200;//显示age为8和21的文档
db.col.find({"age":{$in:[8,21]}})//显示除了age为8和21的文档
db.wu.find({"age":{$nin:[8,21]}})
// limt和skip
db.sheng.find().limit(2)
//显示集合两条文档db.sheng.find({},{_id:0,title:1}).limit{2}  //显示集合sheng,前两条的title信息注意没有{},则没有显示{_id:1,title:0} 也不会显示id等价于> db.col.find({},{_id:0,title:1}).limit(1).skip(1)skip(1)是跳过第一个db.duobiao.find({}).limit(1).skip(1)
//limit 限制数输出
//skip 跳过几行
//显示第二行db.genxin.find({},{name:1,_id:0}).sort({name:-1})
//sort({name:-1})  倒序  默认升序db.duobiao.find({},{book:1,"_id":0}).pretty()  //1代表显示,0不显示。默认为1
//第一个{}表示查询范围  全部
#条件之间的 , 相当于 and
#RDBMS 采用的 WHERE 子句将会是: where by='tutorials point' AND title='MongoDB Overview'
db.duobiao.find({"book":"huanshu","price":"18"})//$or:[{},{}] 相当于 or  {}与{}之间的条件可以是不同行
db.duobiao.find({$or:[{book:"huanshu"},{name:"xxxxx"}]})//这个是and or一起使用
//意:满足  book and pirce 18/19才可显示  所以只显示一个表
db.duobiao.find({book:'huanshu',$or:[{price:'18'},{price:'19'}]})

更新文档

#更新文档col中title
db.zhi.update({title:'MongoDB 教程'},{$set:{title:'wzs'}})  //若要修改多条相同的文档,则需要设置 multi 参数为 true
db.zhi.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})  //更新单个文档
//以name:'abc'为查询条件,将 age数据更新为28
db.zhi.insert( {"name":"abc","age":"25","status":"zxc"})
dbzhi.updateOne({"name":"abc"},{$set:{"age":"28"}})//更新多个文档
db.zhi.updateMany({"age":{$gt:"10"}},{$set:{"status":"xyz"}})
//$gt:"10" 大于 10#$set
//更新文档col中title字段
db.zhi.update({title:'MongoDB 教程'},{$set:{title:'wzs'}})//若要修改多条相同的文档,则需要设置 multi 参数为 true
>db.zhi.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true})//更新单个文档
//以name:'abc'为查询条件,将 age数据更新为28
db.zhi.insert( {"name":"abc","age":"25","status":"zxc"})
dbzhi.updateOne({"name":"abc"},{$set:{"age":"28"}})//更新多个文档
> db.zhi.updateMany({"age":{$gt:"10"}},{$set:{"status":"xyz"}})
//$gt:"10" 大于 10#$rename
//mane为’zhi’的文档把字段age修改为ages
db.wu.update({name:'zhi'},{$rename:{'age':'ages'}})#$unset
//取消字段,去掉文档的某个字段
db.wu.update({name:'jiang'},{$unset:{"company":1}})
{"company":1}  //所要删除字段 值 填1或者真实值都行#$push
//把元素追加到数组字段中,如字段不存在,则新增一个数组类型的字段
db.wu.update({name:'jiang'},{$push:{phone:{age:12,address:'haha'}}})#$pushAll
//$push追加一个元素   $pushAll追加多个元素
db.wu.update({name:'b'},{$pushAll:{phone:[{home:'ha'},{moblie:132}]}})#$addToSet
//增加一个值到数组内(没有才增加,有则不增加,避免重复)
db.wu.update({name:'zhi'},{$addToSet:{phone:{file1:'456',wu: 'hash'}}})#$pop
//只能删除数据第一个 或  最后一个
//1  删除数组最后一个元素;-1  则删第一个
db.wu.update({name:'b'},{$pop:{phone:1}})#$pull
//删除数组中满足条件的元素
db.wu.update({name:'b'},{$pull:{phone:{home:'ha'}}})#$inc
//用于增加或减少数值
//把name为a的文档age增加20;-20则减少20
db.wu.update({name:"a"},{$inc:{age:20}})

分分钟进阶MongoDB相关推荐

  1. python进阶-MongoDB

    目录 Python MongoDB MongoDB PyMongo 测试 PyMongo 一.Python MongoDB 创建数据库 1.创建数据库 2.检查数据库是否存在 二.Python Mon ...

  2. 毕业5年,腾讯65万,拿到美团、滴滴、快手、阿里offer多少钱

    今天给大家分享一个事情,有一位朋友硕士毕业之后工作5年,目前在腾讯工作,职级为3.1级别,年薪为65万左右.现在在寻找新的工作,一圈下来几乎大厂offer拿遍了:美团给的级别是3.1,年薪85万,涨幅 ...

  3. 接到阿里HR面试通过电话的那天我哭了,奋战6个月终进阿里定级P6+

    前不久刚从阿里面试回来,做的准备工作也是刷题和不断的充实自己的技术,其实目前阿里的面试题并不是现在流传的那样,不过还算好顺利拿到了offer,下面来跟大家分享一下. 在分享阿里巴巴Java面经前,我们 ...

  4. 40000+字超强总结?阿里P8把Java全栈知识体系详解整理成这份PDF

    40000 +字长文总结,已将此文整理成PDF文档了,需要的见文后下载获取方式. 全栈知识体系总览 Java入门与进阶面向对象与Java基础 Java 基础 - 面向对象 Java 基础 - 知识点 ...

  5. 一位程序员的穿衣指南

    文 / 王不留(微信公众号:程序员生存指南) 前段时间出差北京,和一位区总闲聊.提到了一位搞开发的兄弟,因为加班很晚,回来倒头就睡.第二天洗把脸就上班. 我们虽然能体会到兄弟们的辛苦,但也要注意下着装 ...

  6. 【程序员装备大全】程序员,就要对自己好一点!

    摘要: <极限特工:终极回归>已经上映了,除了主演们的美好肉体以及让人肾上腺激素爆棚的剧情,那些炫酷的装备也是吸引了无数影迷的眼球.试想一下,如果让你拥有这些装备呢?就算成为不了范迪塞尔, ...

  7. MongoDB 进阶-关联查询

    [苏州需要工作的加我QQ,内推介绍费平分] MongoDB 进阶 1.数据库命令 a.命令的工作原理 drop命令,在shell中删除一个集合,执行db.refactor.drop().其实这个函数实 ...

  8. MongoDB 进阶模式设计

    原文链接:http://www.mongoing.com/mongodb-advanced-pattern-design 12月12日上午,TJ在开源中国的年终盛典会上分享了文档模型设计的进阶技巧,就 ...

  9. 打通前后端全栈开发node+vue+mongodb进阶

    学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习vue和node基础 下载地址:https://download.csdn.net/download/qq_34223273 ...

最新文章

  1. 一些与算法有关的网站
  2. VS编译器如何单步调试
  3. Python面向对象案例汇总
  4. 共享锁和排它锁的用法
  5. oracle数据库中基础知识,oracle数据库基础知识
  6. ireport导出pdf后中文字符全部不显示(已解决)
  7. codepush 微软服务器,ionic3 code-push 搭建自己服务器的问题
  8. 国外变电站3d可视化技术发展_盘点:测量技术五大发展趋势,含3D扫描
  9. css超链接样式+雪碧图实现导航
  10. Facebook新闻摘要算法是怎样的
  11. 学大伟业2018-2019学年第二学期《自主招生集训课程》
  12. hdu2094 c语言
  13. Java虚拟机(JVM)-- Dump内存快照
  14. 面试题目之:mvvm框架是什么?它与其他框架(jquery)的区别是什么?哪些场景适合?
  15. ESP32系列--第九篇 ADC的使用
  16. 【python图像处理】图像灰度化处理、图像灰度线性变换、图像灰度非线性变换
  17. WordPress快速建站
  18. hbase 二进制数据写入_Hbase对于大对象存储的三种主要解决方案
  19. 2020 BAT大厂数据开发面试经验:“高频面经”之大数据研发篇
  20. UG12软件使用配置

热门文章

  1. KanBan系统WeKan安装和使用
  2. mysql占用内存过高调优方法
  3. STM32学习1——环境搭建
  4. mysql时间范围查询 索引无效
  5. 请说说,你平时是如何学习产品知识的?
  6. 前端开发工程师(VUE框架)招聘
  7. 【ARM Linux 系统稳定性分析入门及渐进 1 -- Crash 工具简介】
  8. CAD图纸打印时如何设置打印纸张的方向?
  9. 网络加密主要有以下几种方式_针对脱发的治疗主要有以下几种方法
  10. (java)leetcode122 买卖股票的最佳时机2 数组的多个谷底与峰值的求和