美文网首页
MongoDB数据库入门

MongoDB数据库入门

作者: 测试老杨 | 来源:发表于2019-03-06 11:55 被阅读0次

    MongoDB介绍

    如果你之前只接触过关系型数据库如 Oracle、Mysql 或 SQL Server,在学习 MongoDB 时可能会感到不安,突然有一款数据库不支持外键,不支持事务,不支持数据类型约定,会给人一种没法用的感觉。
    MongoDB 就是这样一款非关系型的数据库,什么叫非关系型?就是把数据直接放进一个大仓库,不标号、不连线、单纯的堆起来。传统数据库由于受到各种关系的累赘,各种数据形式的束缚,难以处理海量数据以及超高并发的业务场景。
    为了解决上述问题,必须有一款自废武功,以求在更高层次上突破瓶颈的数据库系统。就像张无忌忘记招式从而学习太极一样,摈弃了固有模式的 MongoDB 才能应对 Facebook 上亿比特的海量数据。
    MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富、最像关系数据库的。
    由于关系型数据库存储对数据之间存在高度的关联,在数据量达到上万亿比特时,关系型数据库所特有的约束和关联就会成为性能瓶颈。非关系型数据库采用了另一种思维方式,即不考虑数据之间千丝万缕的联系,存储也不需要固定的模式,这样无需多余的操作就能成倍地扩展数据量。
    MongoDB 支持的数据结构非常松散,是类似 json 的 bson 格式,因此可以存储比较复杂的数据类型,比如:

    {
       title: "流浪地球",
       type: "科幻",
       by: "吴京"
    }
    

    实验楼介绍

    实验楼是一家专注于IT技术的在线实训平台,采用创新的“在线实验”学习模式,为学生及在职程序员提供编程、运维、测试、云计算、大数据、数据库等当前主流IT技术实践课程。
    MongoDB实验环境访问地址如下:
    https://www.shiyanlou.com/courses/12

    image.png

    启动MongoDB

    image.png

    连接MongoDB

    image.png

    显示所有的数据库

    image.png

    进入到对应的数据库

    如果该数据库不存在,则自动创建


    image.png

    使用函数创建一个集合

    类似SQL SERVER里面创建一个表格table


    image.png

    使用函数往集合里面添加记录(文档document)

    image.png

    使用函数查询出集合里面的所有记录(文档document)

    image.png

    根据条件进行查询

    类似SELECT * FROM USERS WHERE NAME='张三';


    image.png

    MongoDB 中,OR 查询语句以 $or 作为关键词,用法如下:

    > db.emps.find(
      {
        $or: [
          {key1: value1}, {key2:value2}
        ]
      }
    ).pretty()
    

    同时使用 AND 和 OR, 示例如下:

    > db.post.find({
        "likes": {$gt:10},
        $or: [
            {"by": "shiyanlou"},
            {"title": "MongoDB Overview"}
        ]
    }).pretty()
    

    比较运算符含义:

    gt: 大于 greater than
    Lt: 小于 less than
    gte: 大于或等于 greater than equal
    lte: 小于或等于 less than equal
    

    MongoDB 的模糊查询可以用正则匹配的方式实现:

    # 以 'start' 开头的匹配式
    {"name":/^start/}
    # 以 'tail' 结尾的匹配式
    {"name":/tail^/}
    

    更新文档(记录)

    语法:db.COLLECTION_NAME.update(SELECTION_CRITERIA,UPDATED_DATA)
    

    操作实例(将 user_id=2 的文档的 e-mail 改为 group@qq.com):

    > db.shiyanlou.update({"user_id":2,"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}})
    
    WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})
    
    > db.shiyanlou.find()
    

    默认的 update 函数只对一个文档更新,如果想作用所有文档,则需要加入 multi:true
    操作实例:

    db.shiyanlou.update({"e-mail":"test@qq.com"},{$set:{"e-mail":"group@qq.com"}},{multi:true})
    

    替换已存在的文档(记录)

    语法:db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
    

    操作实例(这里的 _id 对应的是要替换文档的 _id):

    > db.shiyanlou.save({"_id":ObjectId("53ea174ccb4c62646d9544f4"),"name":"Bob","position":"techer"})
    
    WriteResult({"nMatched":1,"nUpserted":1,"nModified":1})
    

    删除文档

    语法:db.COLLECTION_NAME.remove(DELECTION_CRITERIA)
    

    操作实例:

    > db.shiyanlou.remove({"name":"Bob"})
    
    WriteResult({"nRemoved":1})
    

    删除集合

    语法:db.collection.drop()
    

    删除数据库

    语法:db.dropDatabase()
    

    参考资料

    官方教程
    https://docs.mongodb.com/manual/

    ubuntu环境下安装mongodb以及开启远程访问
    https://blog.csdn.net/mint_ying/article/details/79476168

    Window系统下MongoDB安装及远程访问
    https://blog.csdn.net/weixin_37473078/article/details/80236998

    相关文章

      网友评论

          本文标题:MongoDB数据库入门

          本文链接:https://www.haomeiwen.com/subject/zzltpqtx.html