• Mongodb


      简介

      NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。

    在现代的计算系统上每天网络上都会产生庞大的数据量。

    这些数据有很大一部分是由关系数据库管理系统(RDBMS)来处理。 1970年 E.F.Codd's提出的关系模型的论文 "A relational model of data for large shared data banks",这使得数据建模和应用程序编程更加简单。

    通过应用实践证明,关系模型是非常适合于客户服务器编程,远远超出预期的利益,今天它是结构化数据存储在网络和商务应用的主导技术。

    NoSQL 是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。

      Linux安装mongodb

    curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz 
    tar -zxvf mongodb-linux-x86_64-3.0.6.tgz   
    mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb 
    

      下载,解压,拷贝到指定目录

      添加至环境变量

    export PATH=$PATH:/usr/local/mongodb/bin
    

      设置生效

    source /etc/profile
    

      

      创建数据库目录

      MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。

    mkdir -p /data/db
    

      PS:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定

      启动

    cd /usr/local/mongodb/bin
    ./mongod
    

      进入终端

     ./mongo
    

      默认连接test数据库

      使用自己的测试数据库

    use mydb
    

      插入一条数据

    db.mydb.user.insert({name:"111"})
    

      将111插入到集合user的name字段中

      使用find命令查找刚刚插入的数据

    db.mydb.user.find()
    

      Id是系统自动生成的唯一标识

      PS:可以使用工具mongodbVUE连接mongodb数据库

      文档是Mongodb中最基本的数据单元,类似于关系型数据库的行

      例如:关系型数据库

    username  pasword    
    admin      123  

      文档表示

      {username:"admin",password:"123"}

      在mongodb中,文档的建通常都是字符串,对文档的键是区分大小写的,并且在同一文档中键值是不能重复的

      在mongodb中,对集合中存储的文档是非常开放的,一个集合中可以存放各式各样的文档,强烈推荐同一种类型的文档放在同一个集合里面,例如

    {username:"admin"},{role:"admin"}  #强烈反对
    {username:"admin"},{username:"user"} #强烈推荐  
    

      

      什么是子集合

      组织子集合的一种惯例是使用"."字符分开的按命名空间划分的子集合。在Mongodb中使用子集合来组织数据是很好的方法。

      例如:

      用户与用户详细信息包含两个集合,分别是user.user和user.userinfo这样做的目的是为了使组织结构更好些,也就是说user这个集合(这里根本就不需要存在)及其子集合没有任何关系。把数据库的名字放到集合前面,得到的就是集合的完全限定名,称为命名空间。

      

      数据库

      Mongodb中多个集合可以组成数据库

      有些数据库名是保留的

       

      命名规则

      1,不能是空字符串

        2,不可以包含空格,在Mongodb中空代表结束字符

      3,文档的键不可以有"."和“$”,集合名中不可以包含"$"

      4,集合不能以“system”开头,Mongodb中system是系统保留前缀

      5,集合名长度不得超过121字节,在实际使用中应该小于100字节,数据库名最多不超过64个字节

      数据类型

      Mongodb的文件存储格式为BSON,同JSON一样

      支持往其他文档对象和数组中再插入文档对象和数组

      同时扩展了JSON的数据类型,与数据库打交道的那些应用。

    null: null用于表示空值或者不存在的字段。{"x":null}
    布尔:布尔类型有两个值'true'和'false' 。{"x":true}
    浮点数:例如{"pi":3.1415926}
    符号:符号类型转换成了字符串
    

      练习

      插入一条数据

    db.mydb.user.insert({name:"admin",password:123})
    

      查看

    db.mydb.user.find()
    

      

      Mongodb的shell

       

      查看函数源代码

    db.mydb.user.find
    

      

      简单查询

    find()  #返回文档集合
    findOne() #返回最先匹配到的文档对象
    

      find返回值无法直接使用,findOne返回是一个文档对象可以使用

      可以通过对象修改键值,把name对应的value修改为123

      条件匹配查询

    db.mydb.user.find({password:123})
    

      返回键为name的文档

     db.mydb.user.find({},{name:1})
    

      

      删除和创建文档

      不自定义ID

      自定义id

      删除指定文档

      删除整个文档

    db.mydb.user.drop()
    

  • 相关阅读:
    Educational Codeforces Round 30 B【前缀和+思维/经典原题】
    Educational Codeforces Round 30 A[水题/数组排序]
    洛谷 P2415 集合求和【数学公式/模拟】
    洛谷 P2689 东南西北【模拟/搜索】
    洛谷 P1012 拼数 [字符串]
    codeforces 869C The Intriguing Obsession【组合数学+dp+第二类斯特林公式】
    洛谷 P3927 SAC E#1
    洛谷P3929 SAC E#1
    洛谷P3926 SAC E#1
    codeforces 868B The Eternal Immortality【暴力+trick】
  • 原文地址:https://www.cnblogs.com/minseo/p/8972885.html
Copyright © 2020-2023  润新知