你的位置:首页 > 数据库

[数据库]mongodb基础篇


一、  关于mongodb

  1. 两种非关系数据库
    1. Redis:满足极高读写性能的Key-Value数据库

      键值式储存,可以通过键快速查询到值。

      内存数据库,类似于mencached。性能出色。容量低,不具扩展性。

    1. Mongodb:满足海量存储需求和访问页面的面向文档的数据库

      海量数据高效访问。并发读写效率不是很出色。

      分布式储存系统GridFS。

  1. MongDB的特点

    面向集合(json)、模式自由、文档型、动态查询、存储、碎片。

  1. MongDB的应用

    网站数据、缓存、大尺寸低价值的数据、扩展、json数据的存储。

二、  基础知识

  1. 结构
    1. 数据逻辑结构

      文档、集合、数据库。

    1. 数据存储结构

      用0填充的预分配空间。

      表和索引对应的命名空间。

  1. 日志

      系统日志、journal日志oplog日志、慢日志

      参数-logappend为追加,journal日志属于几种提交,oplog记录主服务器的操作,慢日志是记录超时的操作:--profile=1 –slowms=5

  1. 数据类型

      Number、date、array、embedded document。

  1. 启动
    1. 可用配置文件的启动方式、守护进程。
  2. 停止
    1. Ctrl+C、shutdownServer()、kill pid。
  3. 操作数据库
    1. 连接:./mongo
    2. 插入记录

      1)db.collections.save();可创建对象,再在()里面填写对象名。

      2)for(var i=1;i<10;i++) db.collections.save(x:i)来循环插入。

      3)save和insert的区别就是当id_key重复,用save可直接覆盖当前数据,用insert不能覆盖,反而有提醒。

  1. 查询记录

    1)var a= db.collections.find(); while (a.hasNext()) printjson(a.next()); //hasNext()是检测是否还有数据,next()是读取。

    2)db.collections.find().forEach(printjson);//使用JavaScript的输出游标特性。

  1. 条件查询

    FindOne()、limit();

  1. 删除记录
    db.collections.remove({name:”mongo”);//还可使用find查找的条件删除。