一句话解释:MongoDB是一个基于分布式文件存储的数据库。 由C++编写。旨在为web程序提供可扩展性高的高性能的数据存储解决方案

非关系数据库和关系型数据库的区别是什么?

  • 实质:非关系型数据库的实质:非关系型数据库产品是传统关系型数据库的功能阉割版,通过减少用不到或很少用的功能,来大幅度提高产品性能。
  • 价格:目前的非关系型数据库基本都是免费的,而比较有名气的关系型数据库都是收费的,比如:Oracle、DB2、MSSQL。MySql虽然是免费的,但是处理大型数据还是要提前作很多工作的。
  • 功能:实际开发中,很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。

概念性的区别如下表所示:

    了解关系型数据库和非关系型数据库的区别后,需要有一点的取舍,比较复杂和大型的项目不建议使用非关系型数据库,但是如果你想作个博客,CMS系统这类业务逻辑不复杂的程序,MongoDB是完全可以胜任的。

mongoDB的操作语句:

  

查看数据库列表 $ Show dbs   检查数据库
创建数据库    $ use 数据库名称
创建集合     $ db.createCollection(“集合名”)   // 集合 === 表
>{ok:1}
查看集合(一定先进入对应数据库再进行查看)
$ db.getCollectionNames()
>[‘集合名']
插入数据     $ db.集合名.insertOne(数据集合({}json形式的数据)) // 文档 === 列
>{
"acknowledged" : true,   //是否插入成功
"insertedId" : ObjectId("5aab2aaa93468a71aec836ce”)//插入的id
}
查看数据    $ db.music.find() 查看数据库中的数据
{ "_id" : ObjectId("5aab2aaa93468a71aec836ce"), "title" : "回娘家" }
{ "_id" : ObjectId("5aab2b5e93468a71aec836cf"), "title" : "再见理想" }
Help命令 
db.help()   //db下的指令
db.test.help(); // db.test 下的所有指令
db.test.find().help(); //db.test.find下的所有指令
………强大的help指令
使用数据库
use  数据库名
查询数据陆
show dbs
查看当前使用的数据库
db/db.getName();
显示当前的数据库状态
db.stats();
查看当前db的版本
db.version();
查看数据库连接地址;
db.getMongo()
删除数据库
db.dropDatabase() 
tip:删除当前使用的数据库。
集合(collection)操作
1.创建
createCollection(“collName”,{size:20,cappeu:true,max:10})
2.得到指定名称的集合 
db.getCollection(“account”)
3.得到当前db所有的集合;
db.getCollectionNames()
4.显示当前db所有集合状态
db.printCollectionStats();
5.删除集合
db.COLLECTION_NAME.drop();
集合数据操作(添加,修改,删除)update | updateMany()
1.添加 insert([,…]|{key:value,...})
db.users.save({name:”zhangsan”,”age”:25,sex:true})
2.修改 updata(条件({}))
db.users.update({age:25},{$set:{name:”changeName”}},false,true)
相当于sql语句的  update users set name = “changeName” where age = 25;
db.users.update({name:”Lisi”},{$inc:{age:50}},false,true)
相当于sql语句的  update users set age = age + 50 where name =“lisi”
db.users.update({name:”Lisi”},{$inc:{age:50},$set:{name:’hoho’}},false,true)
相当于sql语句的 : update users set age = age + 50 ,name = ‘hoho’ where name = “lisi"
3.删除
db.users.remove({age:132})
db.users.delete()
db.users.deleteOne()
db.users.deleteMany()

豆瓣api api.douban.com/v12/movie/top369
豆瓣数据的操作:
获取到豆瓣的数据,然后将数据放入数据库之中。 
查找对应数据;
db.movie.find(条件,显示内容)
db.movie.find({year:1994},{title:1,year:1,_id:0})//表示显示 title1 和 year1 _id不显示;
1.表示显示  0.表示不显示;

排序
根据评分排序:
db.movie.find({},{title:1,year:1,_id:0,'rating.average':1}).sort({'rating.average':-1})
条件判断:$gt 大于; $lt 小于; $gte 大于等于 $lte 小于等于;
db.movie.find({‘arting.average’:$gt:9.5},{title:1,year:1,_id:0,'rating.average':1}).sort({'rating.average':-1})
分类筛选:
$in 包含  $nin 不包含
db.movie.find({genres:{$in:["犯罪","剧情"]}},{title:1,year:1,_id:0,'rating.average':1}).sort({'rating.average':-1})

  

转载于:https://www.cnblogs.com/fengch/p/8635591.html

mongoDB非关系型数据库相关推荐

  1. SpringBoot入门建站全系列(二十六)Mongodb非关系型数据库的使用

    SpringBoot入门建站全系列(二十六)Mongodb非关系型数据库的使用 一.概述 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能 ...

  2. mongodb msi安装包_跟我快速学数据存储:MongoDB非关系型数据库

    想要学习更多编程,就点上方蓝字关注我们 MongoDB概述 01 与Redis半持久化,存储于内存和硬盘不同,MongoDB是直接持久化,存储于硬盘的缓存系统.MongoDB非常流行,其中阿里云提供了 ...

  3. MongoDB非关系型数据库开发手册

    一:NoSql数据库 什么是NoSQL? NoSQL,指的是非关系型的数据库.NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称. NoSQL用于超 ...

  4. mysql关系型数据库的优点和缺点_关系型数据库和非关系型数据库的区别和特点...

    关系型数据库 采用关系模型来组织数据结构的数据库(二维表) cle    DB2    SQLServer    Mysql     SQLite都是关系型数据库 优点:容易理解,它的逻辑类似常见的表 ...

  5. 【MySQL-MongoDB】关系型数据库与非关系型数据库学习笔记

    目 录 一.关系型数据库与非关系型数据库 1.关系型数据库---RDBMS(relational database managment system) 1.1 主要关系型数据库: 1.2 SQL--- ...

  6. Mongodb数据库(1.mongodb的介绍(非关系型数据库)下载与安装(Windows10))

    1. MongoDB是一种非关系型数据库    (1)也就是所说的NoSQL     •NoSQL最常⻅的解释是"non-relational", "Not Only S ...

  7. 大数据时代的数据存储,非关系型数据库MongoDB(一)(转)

    出处:http://www.cnblogs.com/mokafamily/p/4076954.html 爆炸式发展的NoSQL技术 在过去的很长一段时间中,关系型数据库(Relational Data ...

  8. 关系型数据库(Relational Database)与非关系型数据库(NoSQL)的区别:(MySQL,Redis,Memcache,MongoDB)

    Table of Contents 关系型数据库(Relational Database) 什么是关系数据库 什么是SQL? 关系数据库的结构 关系模型 关系数据库的好处 数据一致性 隔离性和原子性 ...

  9. MongoDB快速上手,聊聊这款火了一阵又销声匿迹的非关系型数据库

    概述 事情的起因要从最近的一个新产品说起,最近部门有一个新的大数据产品规划,在考虑技术实现时,有一个动态表字段扩展的需求,比如原来表结构里只有a.b字段,需要不断的往里新增c.d.e等等字段,并且数据 ...

最新文章

  1. LeetCode简单题之K 进制表示下的各位数字总和
  2. dram和nand哪个难生产_DRAM与NAND差别这么大,存储之争都争啥?-嵌入式系统-与非网...
  3. python重复元素判定编程_从零开始学Python编程四:条件判断与循环
  4. C#跑马灯,图片滚动,后台获取图片地址。动态绑定图片,imag显示文字
  5. Colaboratory下载Kaggle数据
  6. (String)、toString、String.valueOf的区别
  7. 博士生录取采用审核制,存在的一些明显问题!
  8. JS 获取浏览器窗口大小
  9. 微信小程序条码、二维码生成模块
  10. 42、C++ Primer 4th笔记,IO库,未格式化IO操作
  11. 完成端口(IOCP)详解[1/2](转载)
  12. 计算机win10+上锁,手把手教你在windows 10右键菜单中添加Bitlocker上锁/解锁教程-网络教程与技术 -亦是美网络...
  13. 【简历】不带简历就是潇洒?醒醒吧
  14. starbound服务器未响应,星界边境starbound
  15. ONF测试工作张攀:OpenFlow控制器性能测试工具进展
  16. tf.where()【能懂版】
  17. forEach空指针异常问题
  18. 通过数据分析找出Netflix最适合学习英语的电影和电视剧
  19. iPhone X测试烧屏软件,iPhone X烧屏测试,亮屏3天后才会发生
  20. 群晖NAS下docker安装MySql

热门文章

  1. HTTP 200 OK和HTTP 304 Not modified的由来
  2. ecshop flow.php?step=checkout,【原创文章】推荐两种调试ecshop php程序日志记录的方法...
  3. 分式求二阶导数_近10年高考数学“导数大题”分析,附2021备考建议
  4. stm32 带通滤波器_带通滤波 - 基于STM32芯片和TFT-LCD的便携式心电图仪设计
  5. bootstrap后台模板_免费bootstrap后台管理系统模板源码 网站后台模板_后台管理界面...
  6. div 重新加载_使用React的HOC来完成模块的异步加载
  7. python tkinter怎么读_Tkinter GUI与阅读系列
  8. 江苏单招计算机网络试卷,江苏省2016年对口单招计算机专业综合理论试卷.doc
  9. linux var目录满了,Linux入门教程:/var/spool/clientmqueue 占满根目录
  10. 在php中构造函数的作用,php构造函数的作用