• MongoDB-开始学习MongoDB(一)


    先来看看MongoDB的优缺点:

      优点:简单的扩展、快速的读写、灵活的数据类型

      缺点:不支持对SQL的支持、支持的特性不够丰富、现有产品不够成熟

    应用场景:

      适用场景: 持久化缓存层、实时的高效性(读写速度快)、用于文件和对象的存储、高伸缩性的存储、非关系型数据的存储

      不适用场景: 高度事务、复杂多表查询

    1.安装

      http://www.mongodb.org/dr/fastdl.mongodb.org/linux/mongodb-linux-i686-2.4.6.tgz/download

      解压: tar -xzf mongodb-linux-i686-2.4.6.tgz

      拷贝到指定目录下: cp mongodb-linux-i686-2.4.6 /usr/local/mongodb

      启动服务: /usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/mongo.log #启动的同时设置数据和日志存储位置 其中锁文件存储在data目录下

      开机启动: 把上一句话添加到/etc/rc.local中

      关闭服务: pkill mongod

    2.进入客户端进行操作

      执行/usr/local/mongodb/bin/mongo启动客户端程序

    3.入门前知识

      以BSON二进制方式存储数据

    4.客户端操作详解

      数据库和表都为隐式创建, 不用单独创建。

      对比普通关系型数据库:

        普通数据库: 数据库->表->行记录

        MongoDB: 数据库->集合->文档

      其中服务器端一个数据库存储: dbname.ns, dbname.0, dbname.1...dbname.n

      数据类型:

        null, 布尔类型, 32位整数, 64位整数, 64位浮点数, 字符串, ObjectId, 日期(使用的时候如{one: new Date()}), 正则表达式({"one": /abc/}), JS代码({"one": function() {...}}), 数组, 内嵌文档

      命令:

        魔术方法:

          查询时魔术方法在Json内侧, 修改时魔术方法在Json外侧

        db; 查看当前数据库

        show dbs; 查看所有数据库

        show collections; 查看本数据库所有表

        增:

          每条新增的文档都会有一个"_id"字段

          db.cname.insert({name: "John"});

          db.cname.save({name: "John"}); #以上两个都是插入, 不过save是根据_id判断是否存在而执行替换或插入; 相当于MySQL的replace into; _id存在则更改, _id不存在则插入;

        删:

          db.cname.remove({name: "John"});

          db.cname.remove();

        改:

        

        查:

          db.cname.count(0); #参数为0或者1分别表示当计算总条数的时候包不包括查询条件

          db.cname.find().count(); #同上 查询出总共有多少条文档

          db.cname.sort({name: 1});

          db.cname.sort({name: -1}); #根据name进行倒序 上一条为正序

          db.cname.find({name: "John"}); #查询出name为John的文档

          db.cname.find({name: "John"}, {age: 1, sex: 1, _id: 0}); #查询出name为John的文档, 并且只返回age和sex字段

          db.cname.find({age: {$gt: 20}}); #查询出cname中age>20的文档

          db.cname.find().limit(4); #查询出几条数据

          db.cname.skip(2).limit(3); #跳过几条数据, 与上面一条结合实现分页技术

        db.cname.find();

        db.cname.remove();

        db.cname.update({name: "John"}, {name: "Nali"});

  • 相关阅读:
    Meteor会话
    Meteor事件
    Meteor表单
    Meteor集合
    Meteor模板
    Visual Studio 必备神器
    DB2 DATE类型在显示的时候,带有00:00:00,去掉的方法,使用VARCHAR()函数
    SQL 递归查询
    程序员最艰巨的十大任务
    Windows 7,64位机器上安装DB2 7.2+FP7
  • 原文地址:https://www.cnblogs.com/JohnABC/p/3333396.html
Copyright © 2020-2023  润新知