最近在折腾mongodb和nodejs,在imooc上找了一个mongodb的入门教程,跟着里面一步一步的走,下面记录下我操作的步骤和遇到的问题。

课程地址:http://www.imooc.com/learn/295

一、使用VirtualBox安装unbuntu,我用的是14.10的版本。

二、下载monogdb的源码,网址是: http://www.mongodb.org/downloads

三、解压并编译源码。

  • 解压命令 tar -vxf mongodb-src-r2.8.0-rc5.tar
  • 编译命令 scans all 。如果你的电脑cpu有多核心,你可以使用 scans all -j 核心数(如2、4等)来加快编译的速度,我只用了一个核心,结果速度很慢。我主要想体验下编译的过程,你也可以直接下载编译好的二进制文件。

四、编译好的常用程序介绍。

  • mongod  -mongodb数据库的执行程序,使用它进行数据库的部署操作
  • mongo -用来连接mongodb数据库的客户端程序
  • mongoimport mongoexport -mongodb数据库的导入导出
  • mongodump mongorestore -mongodb数据库二进制文件的导入导出,常用于备份和恢复操作

五、搭建简单的mongodb服务器

  • 创建目录结构

  • 将mongod文件复制到bin目录下:cp ../mongod-linux-x86_64-2.6.7/bin/mongod bin/
  • 创建配置文件mongod.conf:
     port = 12345
     dbpath = data
     logpath = log/mongod.log
     fork = true
    其中,port是mongodb的端口号,dbpath是数据库文件的存放路径,data表示当前文件夹下的data目录,logpath是日志文件的保存路径,fork属性表示是否后台启动
  • 执行mongod命令:./bin/mongod -f conf/mongod.conf

    出现上述代码,表示mongodb启动成功

六、使用mongo客户端连接mongoDB服务器

  • 拷贝mongo命令到bin目录: cp ../mongod-linux-x86_64-2.6.7/bin/mongo bin/
  • 连接到mongoDB服务器test数据库: ./bin/mongo 127.0.0.1:12345/test

    出现下图中的信息表示连接成功
  • 关闭数据库
    use admin
    db.shutdownServer()

七、mongoDB的基本操作之数据写入和查询

  • 连接到数据库后,可以查看下当前有哪些数据库:show dbs
  • 切换到指定数据库:use imooc
  • 查看当前数据库下的集合 show tables
  • 删除指定数据库:db.dropDatabase()
  • 插入一条数据:db.imooc_collection.insert({x:1}) 其中imooc_collection是集合的名称
  • 查找数据:db.imooc_collection.find() find中不传任何参数会返回集合中所有数据
  • 统计当前数据集中的数据条数:db.imooc.collection.find().count()
  • 个性化查询:跳过数据集中的前三条数据,返回两条数据并按照x值正向排序 db.imooc_collection.find().skip(3).limit(2).sort({x:1})

八、mongoDB的基本操作之数据更新

  • 将x为2的数据更新为3:db.imooc_collection.update({x:2},{x:3})
  • 只更新指定的数据:db.imooc_collection.update({x:2}{$set:{x:3}})
  • 更新一条不存在的数据,默认不会有任何操作,如果想数据不存在时自动创建,则可以给update函数传入第三个参数true,如:db.imooc_collection.update({x:2},{x:3},true)
  • update函数默认只会更新一条数据,如果想同时更新多条数据,则可以传入第四个参数,并使用$set操作符,如:db.imooc_collection.update({x:2},{x:3},false,true)

九、mongoDB的基本操作之删除数据

  • 删除指定数据:db.imooc_collection.remove({x:2})
  • 删除整个数据集:db.imooc_collection.drop()

十、索引

  • 查看当前数据集的索引:db.imooc_collection.getIndexes()
  • 创建单键索引:db.imooc_collection.ensureIndex({x:1}) 其中x的值表示索引的方向,1为正向,-1为负向
  • 索引种类:_id索引、单键索引、多键索引、复合索引、过期索引、全文索引、地理位置索引
  • 复合索引:db.imooc_collection.ensureIndex({x:1,y:2}) 当同时使用x和y查询时,需要用到复合索引
  • 过期索引:是指在一段时间后后过期的索引。在索引过期后,相应的数据会被删除。这适合存储一些在一段时间之后会失效的数据,比如用户的登录信息、存储的日志等。
  • 过期索引建立方法:db.imooc_collection.ensureIndex({x:1},{expireAfterSeconds:10}) 数据会在10秒后消失,但是此时间并不精确,数据库会每60秒执行一次删除操作

使用虚拟机在ubuntu下搭建mongoDB开发环境和简单增删改查操作的更多相关文章

  1. ubuntu下搭建android开发环境之超顺畅模拟器

    如果说android系统的卡,像耳边蚊子让人抓狂,那么android模拟器的卡,那就像午睡时的苍蝇.大概就是一样的恶心~~ 那么,这样的问题对于开发者肯定忍无可忍,我也一样,虽然我还没有入门,但我也一 ...

  2. ubuntu下搭建JAVA开发环境【转】

    转自:http://jingyan.baidu.com/article/86fae346b696633c49121a30.html JAVA开发环境是一种跨平台的程序设计语言,可以在windows.L ...

  3. nodejs笔记五--MongoDB基本环境配置及增删改查;

    一.基本环境配置: 1,首先到官网(http://www.mongodb.org/downloads )下载合适的安装包,然后一步一步next安装,当然可以自己更改安装目录:安装完成之后,配置环境变量 ...

  4. Ubuntu下搭建JAVA开发环境及卸载

    据调查,在中国,PC时代,绝大多数普通用户都不知道linux为何物,到了移动互联网时代,更加不知道,也不会再知道了. 所以,此文不多解释,使用linux的,都是IT界人士,不必普及基础知识. 从已经安 ...

  5. Ubuntu下搭建java开发环境

    JDK安装: 1. 在http://www.oracle.com/technetwork/java/javase/downloads/index.html上下载相应版本的JDK环境,这里我使用的是jd ...

  6. ubuntu下搭建android开发环境核心篇安装AndroidStudio、sdk、jdk

    本文系转载http://blog.csdn.net/lsyz0021/article/details/52215996 一.安装前的准备 1.1.如果你还没有安装ubuntu 14.04 LTS系统, ...

  7. MongoDB下载安装与简单增删改查

    Windows下MongoDB的安装和配置.启动和停止 下载地址:MongoDB的官方下载网址是:https://www.mongodb.org/downloads 安装步骤1. 点击下载的mongo ...

  8. Ubuntu下搭建C++开发环境

    Ubuntu使用eclipse搭建c/c++编译环境----CDT插件 Ubuntu(Linux)使用Eclipse搭建C/C++编译环境          这两天,给自己电脑弄了双系统,除了原来的W ...

  9. ubuntu下搭建android开发环境

    注意: google可能被和谐了,那就修改hosts sudo vim /etc/hosts 增加: #Google主页 203.208.46.146 www.google.com #这行是为了方便打 ...

随机推荐

  1. poj 1125 Stockbroker Grapevine dijkstra算法实现最短路径

    点击打开链接 Stockbroker Grapevine Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 23760   Ac ...

  2. nyoj 93 汉诺塔(三)

    点击打开链接 汉诺塔(三) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝 ...

  3. Chapter Schema

    Chapter Schema Schema是XF的核心,每一个读写方法都有一个相关联的Schema.方法首先解析Schema,然后再根据Schema的配置的执行. 那Schema是什么呢?Schema ...

  4. 嵌入式X86运行linux及QtEmbedded+触摸屏(X86PC104+Xlinux+QtE+触摸屏解决办法)

    嵌入式X86运行linux及QtEmbedded+触摸屏(X86PC104+Xlinux+QtE+触摸屏解决办法) QQ:5724308 邮箱:sankye@163.com

  5. String 去重,区分大小写

    题目要求:去除,和.,相同的单词去除后面的.区分大小写 示例:输入:There is a will,there is a way. 输出There is a will there way 答案代码: ...

  6. c-windows-1

    < Back 我使用的是<windows程序设计>和VS 首先看到的第一个代码是: /*----------------------------------------------- ...

  7. int型的数到底最大值是多少?

    本文摘自:http://blog.csdn.net/friendbaby/article/details/6822690 刚才在百度知道上看见一个网友问int型的数最大能存多少.这个问题其实计算机系统 ...

  8. 慕课网-安卓工程师初养成-4-14 Java 循环语句之多重循环

    来源:http://www.imooc.com/code/1497 循环体中包含循环语句的结构称为多重循环.三种循环语句可以自身嵌套,也可以相互嵌套,最常见的就是二重循环.在二重循环中,外层循环每执行 ...

  9. 缓存之Memcached

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  10. com组件 智能指针崩溃问题崩溃问题

    int main(){ CoInitialize(NULL); HRESULT hr; IWinHttpRequestPtr pHttpReq=NULL; pHttpReq.CreateInstanc ...