MongoDB

为什么使用MongoDB/什么场景下使用它?

  • 数据量大
  • 写入频繁
  • 价值低

对MongoDB有一个较为深刻的认识:

  1. c++ 编写的一个基于分布式文件存储的数据库;
  2. 是一个接近于关系型数据库的非关系型数据库;
  3. 支持的数据,结构较为松散,是类似于json的bson格式,可以存储复杂的数据类型;
  • 模式*,支持动态查询,支持索引;

mongoDB的体系结构(数据库/集合/文档):

是一种,面型用户的层次结构,主要由document,collection database三部分构成

MongoDB

document: 类似于关系型数据库中的一行记录;

collection:由document组建成的集合,collection中存放document,类似于MYSQL中的表;

database: 数据库; MongoDB实例,支持多个数据库;

会安装 mongodb (mongod --dbpath=xxx -port=27017)

mongodb的命令:

  1. 选择和创建数据库

    show dbs
    use db
    

    注意的是 use db 并不会直接创建数据库,需要先创建集合collection,集合内存入文档,才会查询到数据库db;

    MongoDB

  2. 插入和查询文档

    db.collection.insert(json);
    

    db 数据库 collection 集合 insert插入 bson,当做json使用即可;

    db.collection.find();
    db.collection.findOne({json条件});
    db.collection.find().limit(2)
    

    find() 查询所有;

    findOne({json}):查询符合json条件的第一条数据;

    find().limit(x); 查询所有的数据,前x条;

  3. 修改和删除文档

    db.collection.uopdate({_id:"1"},{user:"lisi"});
    db.collection.update({_id:"1"},{$set:{user:"lisi"}});
    db.collection.remove(条件);
    db.collection.remove({});   删除所有
    

    update() 十分危险,必须附加修改器$set,不然就不是修改,而是覆盖

  4. 统计条数

    db.collection.count();
    db.collection.count(条件);
    
  5. 模糊查询

    和查询一致,支持正则表达式 \^xxxx$\

  6. 大于,小于,不等于

    json 表达 : {"field":{$gt:value}} 大于value的字段field

    $gt 大于

    $lt 小于

    $gte 大于等于

    $lte小于等于

    $ne不等于

  7. 包含和不包含 $in $nin

  8. 条件连接 $and $or 且 或

  9. 列值增长 $inc

MongoDB数据类型

String 最常用的UTF-8合法

mongodb 的主键 _id 自增 查询写入速度很快

上一篇:mongodb 基本概念


下一篇:mongodb数据库备份