mongoDB数据库简介

Mongodb数据库

数据库概述

  • 数据库是用来存储数据的

  • 数据库是按照数据结构组织 、存储和管理数据的仓库。

  • 数据库分为两种

    • 关系型数据库
      • oracle mySQL Access SqlServer db2
      • 特点
        1.以表作为基本结构,
        2.每一列都有标题,叫做字段
        3.每一行内容代表一条数据
        4.数据库 -> 表 -> 行
    • 非关系型数据库
      • nosql mongoDB Redis,HBase,CouchDB noSQL(not only sql 是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储 这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。)
      • 数据库 -> collections集合 -> 文档
    • 两者的区别
      • 有没有表
      • 数据之间是否有关联,复杂度高不高
      • 能不能存储二进制数据
  • MongoDB的存储数据格式: Bson

  • MongoDB配置和安装

    • 全局环境变量配置: 4.0版本以上是自动的,< 4.0是手动配置
    • 系统服务配置:电脑开机,mongoDB服务启动

在这里插入图片描述

文档型数据这个名字中,“文档”两个字很容易误解。其实这个文档就是 bson 。bson 是 json 的超集,比如 json 中没法储存二进制类型,而 bson 拓展了类型,提供了二进制支持。mongodb 中存储的一条条记录都可以用 bson 来表示。所以你也可以认为,mongodb 是个存 bson 数据的数据库。

2.4.MongoDB简介

MongoDB 是一个基于分布式文件存储的数据库。
  • 分布式算法指的是讲一个大的任务分成多个小的任务,最后将小任务的结果拼接起来,
  • 随着大数据的不断发展,非关系型数据库已经变得越来越重要,相关的产品也都得到了飞速发展。而其中MongoDB更是佼佼者,作为高性能开源文档数据库,MongoDB以敏捷、可扩展和对企业应用友好而著称,因其操作简单、完全免费、源码公开等特点,受到了IT从业人员的青睐,并被广泛部署于实际的生产环境中。

2.5.MongoDB优点

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:
  • 面向集合存储,易存储对象类型的数据。
  • 模式自由。
  • 支持动态查询。
  • 支持完全索引,包含内部对象。
  • 支持查询。
  • 使用高效的二进制数据存储,包括大型对象(如视频等)。
  • 文件存储格式为BSON(一种JSON的扩展)
  • 自动处理碎片,以支持云计算层次的扩展性

2.6.BSON

BSON是一种类似json的二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。
BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的Protocol Buffer,但是BSON是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想。
BSON有三个特点:轻量性、可遍历性、高效性。

2.7.非关系型数据库与关系型数据库区别

  • 非关系型数据库的优势:
      1. 性能
      • NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。
      1. 可扩展性
      • 同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
  • 关系型数据库的优势:
      1. 复杂查询
      • 可以用SQL语句方便的在多个表之间做非常复杂的数据查询。
      1. 事务支持
      • 使得对于安全性能很高的数据访问要求得以实现
非关系型数据库文件存储格式为BSON(一种JSON的扩展)。
数据库功能是用来存储数据的。

MongoDB基础使用(重要!!!)


待下载安装并配置好之后,打开终端

首先 mongo


> Help           查看帮助
> show dbs       显示数据库列表
> use dbname     创建 | 切换数据库
    - 如果数据库不存在,则创建数据库dbname,
    - 否则切换到指定数据库dbname
    - 创建的数据库并不在数据库的列表中,要显示它,我们需要向数据库dbname插入一些数据
    - 例如: use 1907
> show collections    显示数据库中的集合

增加数据

db.webs.save({"name":"老李"});     //webs 为数据库下的集合collections
db.webs.insert({"name":"ghost", "age":10});    //同上

> save()和insert()也存在着些许区别
> 若新增的数据主键已经存在,insert()会不做操作并提示错误,而save() 则更改原来的内容为新内容。

_id是主键,主键是每条数据的唯一标识,不能重复,就像身份证是每个人唯一的编号一样。
存在数据:{ _id : ObjectId("57e8d34b4764fb71d0a89caa"), " name " : " 老李"} ,_id是主键

删除数据

1、删除文档 
 > db.users.remove({})    //删除users集合下所有数据
 > db.users.remove({"name": "lecaf"})   //删除users集合下name=”lecaf”的数据
2、删除集合
 > db.users.drop()    // 删除集合users
3.删除数据库
> db.runCommand({"dropDatabase": 1})   //除当前数据库,注意 此处的1没加双引号

查找数据库

> db.users.find()   //查找users集合中所有数据
> db.users.findOne()  //查找users集合中的第一条数据
> db.users.find().pretty()  //格式化查询到的数据

修改数据

> db.webs.update({"name":"a1"}, {$set: {sex:”women”}},true,true)
- 第一个参数是查找条件
- 第二个参数是修改内容
- 第三个参数表示匹配所有符合条件的数据
- ,第四个参数表示修改所有匹配到的数据

条件查找

> db.users.find({ "age" : 20 })  //查找users 集合中age = 20 的数据
> db.users.find({ "age" : { $gt: 20 } })  //查找users 集合中age 大于 20 的数据
> db.users.find({ "age" : { $lt: 20 } })  //查找users 集合中age 小于 20 的数据
> db.users.find({ "age" : { $gte: 20 } })  //查找users 集合中age 大于等于 20 的数据
> db.users.find({ "age" : { $gt: 20 , $lt: 30 } }) //查找users 集合中 大于20 并且小于20的数据
> db.users.find({ "age" : { $ne: 20 } })  //查找users集合中age 不等于20的数据
> db.users.find({ "age" : { $mod : [ 10 , 5 ] } })  //查找users集合中,age%10 == 5 的数据
> db.users.find({ "age" : { $in: [ 21, 22, 23 ] } })  //查找users集合中,age 等于 21 或 22 或 23 的数据
> db.users.find({ "age" : { $nin: [ 21, 22, 23 ] } })  //查找users中,age不等于21 、 22、 23 中任何一个的数据
> db.users.find({ "families" : { $size: 5 } })  //查找users中,families的数量 | 个数 | 尺寸 为5 的数据
> db.users.find({},{_id: 0,name:1,age:0}}). //将users集合中的_id 隐藏,
name显示,age隐藏,打印出来
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值