先来看看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"});

MongoDB-开始学习MongoDB(一)的更多相关文章

  1. 【MongoDB】学习MongoDB推荐三本书

    近期学习mongodb,感觉这三本书写得不错.非常大家分享一下:

  2. NoSQL之【MongoDB】学习(三):配置文件说明

    摘要: 继上一篇NoSQL之[MongoDB]学习(一):安装说明 之后,知道了如何安装和启动MongoDB,现在对启动时指定的配置文件(mongodb.conf)进行说明,详情请见官方. 启动Mon ...

  3. [转载]MongoDB开发学习(2)索引的基本操作

    索引能够极大的提高查询的效率.在数据库中简历索引必不可少. 在MongoDB中可以很轻松的创建索引. 默认索引_id_ 开启MongoDB服务器,创建数据库cnblogs,创建集合Users .(关于 ...

  4. MongoDB入门学习(一)—— 安装和启动

    最近由于工作需要,开始学习MongoDB数据库了.第一篇博文就从这里开始吧,以此记录下学习中的点点滴滴,为自己加油呢! (一) MongoDB简介 网上搜搜了一下:(来源:http://www.run ...

  5. MongoDB入门学习(一):MongoDB的安装和管理

    以前用MySQL数据库,整天都是写大堆大堆的SQL语句,要记住这些SQL关键字都要花好几天时间,写的蛋都爆了,当接触到MongoDB的时候,发现不用写SQL,瞬间觉得高大上,瞬间产生了学习使用它的冲动 ...

  6. 双刃剑MongoDB的学习和避坑

    双刃剑MongoDB的学习和避坑 MongoDB 是一把双刃剑,它对数据结构的要求并不高.数据通过key-value的形式存储,而value的值可以是字符串,也可以是文档.所以我们在使用的过程中非常方 ...

  7. MongoDB的学习--索引类型和属性(转)

    原文链接:MongoDB的学习--索引类型和属性 索引类型 MongDB的索引分为以下几种类型:单键索引.复合索引.多键索引.地理空间索引.全文本索引和哈希索引 单键索引(Single Field I ...

  8. mongodb基础学习1-基本说明及安装

    以前看过一些mongodb的视频,但只看到一半没有看完,也没有同步安装软件动手操作,正好最近没事,打算花点时间从头学习一遍,边学习边动手操作,学习的过程在此进行记录. 好了,下面说一下今天的学习内容. ...

  9. mongodb数据库学习【安装及简单增删改查】

    //@desn:mongodb数据库学习 //@desn:码字不宜,转载请注明出处 //@author:张慧源  <turing_zhy@163.com> //@date:2018/08/ ...

  10. 孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5

    孤荷凌寒自学python第六十六天学习mongoDB的基本操作并进行简单封装5并学习权限设置 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第十二天. 今天继续学习mongo ...

随机推荐

  1. 将 MRC 项目转换为 ARC 项目

    其实很简单,直接使用系统工具转换即可,以下是步骤: 1. 你之前的项目是MRC的 2. 里面有 release, dealloc 等. 3. 开始转化 4. 点击save转化完后,记得把工程重新设置成 ...

  2. 分割流 SequenceInputStream (转)

    import java.io.*;import java.util.*; class SplitFile{ public static void main(String[] args) throws ...

  3. JDBC结合JSP使用(2)

    5. 删除数据 在删除数据的时候,需要指定删除条件,否则会把数据库表中的数据全部删除.在JSP页面中获得删除条件以后,调用JDBC的删除条件,把数据库表中的数据删除.删除操作的JSP页面代码如下: d ...

  4. 寻路DEMO

    网格场景的寻路算法DEMO 灰色格子为默认正常蓝色格子表示为障碍物,不可进入红色细条在格子周围,表示格子的墙,用于阻碍行走紫色为当前鼠标选中格子黄色为寻路的起始位置和结束位置.鼠标左键设置,CTRL+ ...

  5. tensorflow 之常见模块conv,bn...实现

    使用tensorflow时,会发现tf.nn,tf.layers, tf.contrib模块有很多功能是重复的,尤其是卷积操作,在使用的时候,我们可以根据需要现在不同的模块.但有些时候可以一起混用. ...

  6. docker 基本原理及快速入门

    作者地址:青牛 什么是docker Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来 ...

  7. JAVA输出指定目录下的子目录和子文件

    题目:给定一个目录,要求输出这个目录下面的子目录和子文件 逻辑: 先判断给定的是不是一个合法的目录,如果不是,则提示给定错误 如果是目录,那么使用File.listFile()获得这个目录下文件名的数 ...

  8. Redis自学笔记 --string类型

    string类型                                                                                  set 赋值 get ...

  9. word 文档如何加密

    给Word文档加密主要有以下几个方法:文件加密文件菜单设置:1.打开需要加密的Word文档.2.选“文件”的“另存为”,出现“另存为”对话框,在“工具”中选“常规选项”,出现“保存”选项卡.3.分别在 ...

  10. jquery设置按钮disabled

    通常我们设置disabled属性会用attr和removeAttr,但是今天我们不讨论这个方式 我们讨论是的prop jQuery的定义是:获取在匹配的元素集中的第一个元素的属性值. 随着一些内置属性 ...