MongoDB数据库

MongoDB

  1. 关系型数据库概念,常用的数据库有哪些?
    Access,mySql,SqlServer,oracle,db2等
  2. 非关系型数据库概念,常用数据库
    MongoDB,Redis,HBase,CouchDB等
  3. mongodb 和 sql区别
    1. sql 是关系型数据库由表和行组成
    2. NoSql 是非关系型数据库由集合和文档组成
  4. bson是mongodb的数据存储格式
    • 文档型数据这个名字中,“文档”两个字很容易误解。其实这个文档就是 bson 。
  5. bson是json的超集
    • bson 是 json 的超集,比如 json 中没法储存二进制类型,而 bson 拓展了类型,提供了二进制支持。mongodb 中存储的一条条记录都可以用 bson 来表示。所以你也可以认为,mongodb 是个存 bson 数据的数据库。

总结:

  • 数据库功能是用来存储数据的。
  • 数据库分为关系系数据库和非关系型数据库(nosql)
  • 关系型数据库是由表和表之间的关系组成的,nosql是由集合组成的,集合下面是很多的文档。
  • 非关系型数据库文件存储格式为BSON(一种JSON的扩展)。

MongoDB使用

  1. MongoDB简介
    是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是非关系型数据库当中功能最丰富,最像关系型数据库的。

  2. MongoDB优点
    它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

    • 面向集合存储,易存储对象类型的数据。
    • 模式自由。
    • 支持动态查询。
    • 支持完全索引,包含内部对象。
    • 支持查询。
    • 支持复制和故障恢复。
    • 使用高效的二进制数据存储,包括大型对象(如视频等)。
    • 自动处理碎片,以支持云计算层次的扩展性
    • 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言。
    • 文件存储格式为BSON(一种JSON的扩展)
  3. MongoDB下载与安装

  4. MongoDB基础使用

  • 显示数据库列表 show dbs
  • 创建数据库 use dbname
  • 显示数据库中的集合 show collections
  • 增加数据
    db.web.save({"name":"老李"})
    db.web.insert({"name":"ghost", "age":10})在web集合中插入一条新数据,如果没有web这个集合,mongodb会自动创建
    save()和insert()也存在着些许区别:若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容。
  • 删除数据
    db.users.remove({}) 删除users集合下所有数据
    db.users.remove({"name": "lecaf"}) 删除users集合下name=”lecaf”的数据
    db.users.drop()或db.runCommand({"drop":"users"}) 删除集合users
    db.runCommand({"dropDatabase": 1}) 删除当前数据库,注意:此处的1没加双引号。
  • 查找数据
    db.users.find() 查找users集合中所有数据
    db.users.findOne() 查找users集合中的第一条数据
    db.users.find().pretty() 格式化查询到的数据
  • 修改数据
    db.web.update({"name":"a1"}, {"age":10}) 修改name=a1的数据为sex=1,第一个参数是查找条件,第二个参数是修改内容,主键不能修改

5.MongoDB高级命令
查找:

  • db.collection.find({ "key" : value }) 查找key=value的数据.
  • db.collection.find({ "key" : { $gt: value } }) 查找key > value 的数据
  • db.collection.find({ "key" : { $lt: value } }) 查找key < value 的数据
  • db.collection.find({ "key" : { $gte: value } }) 查找key >= value的数据
  • db.collection.find({ "key" : { $lte: value } }) 查找key <= value的数据
  • db.collection.find({ "key" : { $gt: value1 , $lt: value2 } }) 查找value1 < key <value2的数据;

排序:

  • db.collection.find().sort({ "key1" : -1 ,"key2" : 1 }) 这里的1代表升序,-1代表降序
  • db.collection.find().limit(5) 控制返回结果数量,如果参数是0,则没有约束,limit()将不起作用
  • db.collection.find().skip(5) 控制返回结果跳过多少数量,如果参数是0,则当作没有约束,skip()将不起作用,或者说跳过了0条
  • db.collection.find().skip(5).limit(5) 可用来做分页,跳过5条数据再取5条数据
  • db.collection.find().count() count()返回结果集的条数
  • db.collection.find().skip(5).limit(5).count(true) 在加入skip()和limit()这两个操作时,要获得实际返回的结果数,需要一个参数true,否则返回的是符合查询条件的结果总数
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值