MongoDB 入门

简介:MongoDB是C++语言编写的一个基于分布式文件存储的NoSQL数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。

一、特征

  1. 优点

    A. 面向集合存储,易于存储对象类型的数据;

    B. 支持动态查询、完全索引,海量数据下,性能优越;

    C. 文件存储格式为BSON,是一种类似JSON的二进制形式的存储格式;

    D. 高效存储二进制大对象(照片或视频等);

    E. 内置GridFS,支持大数据集的快速范围查询;

    F. MapReduce支持复杂聚合,但速度慢;

    G. 支持查询语言丰富,如:RUBY,PYTHON,JAVA,C++,PHP,C#等;

  2. 缺点

    A. 不支持事务操作;

    B. 占用空间大:如空间的预分配、字段名所占用的空间、删除记录不释放空间(但空间可利用);

    C. 没有MySQL那样成熟的维护工具;

    D. 模式自由,自由灵活的文件存储格式带来的数据错。

  3. 体系架构

    A. database:数据库,相当于MySQL中database;

    B. collection:数据库表或集合,相当于MySQL中table;

    C. document:数据记录行或文档,相当于MySQL中row;

    D. field:数据字段或域,相当于MySQL中column;

    E. index:索引,相当于MySQL中index;

    F. primary key:主键,自动将_id字段设置为主键,相当于MySQL中primary key;

  4. 数据类型

    A. String:字符串,常用的数据类型;

    B. Boolean:布尔值,用于存储真、假;

    C. Array:数组,用于将数组或列表或多个值存储为一个键;

    D. Object ID:对象ID,用于创建文档的ID;

    E. Null:用于创建空值;

    F. Code:代码类型;

 

二、文档操作

  1. 新增文档

    A. 单条插入:db.集合名.insert(BSON格式文档内容);

    B. 批量插入

db.集合名.insertMany(
    [文档1, 文档2...],
    {
         ordered: <boolean> // 是否有序写入,默认true      
    }          
)

  2. 修改文档

    A. 覆盖修改

db.集合名.update(
    {BSON格式查询条件},
    {BSON格式要更新的内容}
    {
      multi: <boolean> // 是否更新查询条件下所有的记录,默认false,只更新第一条
    }   
)

    B. 局部修改

db.集合名.update(
    {BSON格式查询条件},
    {$set: {BSON格式要更新的内容}}
    {
      multi: <boolean> // 是否更新查询条件下所有的记录,默认false,只更新第一条
    }   
)

    C. 列值自增

db.集合名.update(
    {BSON格式查询条件},
    {$inc: {BSON格式要更新的内容}}
    {
      multi: <boolean> // 是否更新查询条件下所有的记录,默认false,只更新第一条
    }   
)

  3. 删除文档

db.集合.remove(
    BSON格式条件,
    {
      justOne: <boolean> // 是否删除所有匹配条件的文档,默认值为false,若设置为true,则只删除一个文档
    }   
)

  4. 查询文档

     A. 查询方法

      db.集合名.find(BSON格式条件).pretty();

      db.集合名.findOne(BSON格式条件);

    B. 条件查询

      大小比较操作符:$gt、$gte、$lt、$lte、$ne;

      $regex正则表达式匹配;

      javascript查询和$where查询;

      limit():读取数据库指定的记录条数;

      skip():跳过指定数量的数据再开始获取;

      sort():通过指定的排序字段对数据进行排序,其中1 - 升序、-1 - 降序;

      count():查询表中的记录条数;

    C. 条件连接查询

      AND条件:find()方法可以传入多个键值对,类似于SQL的AND条件;

      OR条件:利用$or来实现SQL中的OR效果;

    D. 投影查询:查询部分字段;

    E. 统计查询:db.集合名.count(BSON格式条件);

    F. 分页查询:db.集合名.find().skip(0).limit(10);

    G. 排序查询:db.集合名.find().sort(BSON格式条件);

   5. 聚合:用于处理数据,返回结果,如计算均值;

 

可参考:MongoDB中文手册

posted @ 2020-10-10 21:08  如幻行云  阅读(107)  评论(0编辑  收藏  举报