• MongoDB 总结


    参考资料

    官方网站:https://www.mongodb.com/zh-cn

    MongoDB 介绍

    MongoDB 是一个基于分布式文件存储的数据库,采用 BSON 存储文档数据,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。默认端口 27017。

    MongoDB 应用场景

    1、用在存储一些监控数据,真的很方便,增加字段不用改表结构,而且学习成本极低,例如记录服务器日志等。

    2、用在了物流快递应用,将骑手、商家的信息存储在 MongoDB,通过地理位置查询,很方便的查找附近的商家、骑手。

    3、游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、更新。

    4、物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。

    MongoDB 概念

    SQL术语 MongoDB术语 说明
    database database 数据库
    table collection 数据库表/集合
    row document 数据记录行/文档
    column field 数据字段/域
    index index 索引
    table joins 表连接/MongoDB不支持
    primary key primary key 主键/MongoDB自动将_id字段设置为主键

    MongoDB 查询

    1、查询像关系型数据库,可以 limit() 限制条数;可以利用 skip() 和 limit() 配合实现分页;甚至还可以使用 sort() 实现排序。

    2、通过正则表达式查询,功能更强大;还可以利用比较查询、in 查询,查询某一范围的 document。

    3、可以利用 $and 和 $or 关键词组成复杂的查询。

    4、投影查询,指定需要的 filed,其他的内容不再返回。

    5、聚合查询主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。

    > dbName.collectionName.find().pretty()
    {
            "_id" : ObjectId("56063f17ade2f21f36b03133"),
            "title" : "费哥哥好帅!",
            "description" : "真滴很帅。",
            "by" : "费哥哥",
            "tags" : [
                    "暖男",
                    "博学",
                    "强大"
            ],
            "likes" : "小萝莉"
    }
    

    MongoDB 索引

    1、索引通常能够极大的提高查询的效率,索引分类大概有:单字段索引、复合字段索引等。

    2、另外可以通过 explain() 查看执行计划。

    3、涵盖查询:索引中的 filed 就是你投影查询的全部 filed,那么就不会去 collection 中获取数据了。

    MongoDB 副本

    MongoDB 复制是将数据同步在多个服务器的过程。MongoDB 的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。

    MongoDB 分片

    MongoDB 存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。

    MongoDB 备份与恢复

    1、使用 mongodump 命令来备份数据,该命令可以导出所有数据到指定目录中。

    2、使用 mongorestore 命令来恢复备份的数据。

    MongoDB 监控

    可以利用 MongoDB 下的一个内置工具:mongostat、mongotop。

    MongoDB 图形化工具

    MongoDB Compass

  • 相关阅读:
    让HTML5来为你定位(转)
    Web开发者应知的URL编码知识(转)
    Web开发:URL编码与解码(转)
    用virtualenv建立多个Python独立开发环境(转)
    使用Ajax方式POST JSON数据包(转)
    俞敏洪:我和马云就差了8个字...(转)
    HTTP返回码中301与302的区别(转)
    Postgresql 正则表达式(转)
    【双十一狂欢,一触即发!】安全圈的学习节|绝对省钱攻略
    安全运维中基线检查的自动化之ansible工具巧用
  • 原文地址:https://www.cnblogs.com/feiqiangsheng/p/14361112.html
Copyright © 2020-2023  润新知