初识MongoDB,安装和使用入门

 

 

 

最近需要做一个跟小文件存储相关的服务,利用到了一些MongoDB的特性,包括GridFS,因此想用MongoDB做做看,借此机会学习一下MongoDB.

MongoDB是什么网上的介绍有很多了,本文就不再赘述,主要记录Mongo的安装和简单的操作

 

环境:

首先我们需要一个Ubuntu Server 14.04 64bit,用来安装MongoDB. 这台Ubuntu 上已经预先安装了Apache + MySQL + PHP5,我们后面会用到PHP。

MongoDB在Ubuntu下有以下分发包,

这篇文章偏重于介绍安装和简单的入门使用,暂不介绍以上工具。

 

控制脚本:

mongodb-org这个包包含了不同的控制脚本,包括加载脚本/etc/init.d/mongod。

这个包还用了一个/etc/mongod.conf文件用于配置MongoDB参数,比如绑定的IP等。

 

到了3.0.1版本,已经没有针对mongos控制的脚本,mongos进程仅仅被用作分片(姑且这么叫)

 

其他问题:

生产环境的部署当中,只保证运行MongoDB在64位系统上.,并且在Ubuntu上,不能同时安装Ubuntu提供的这三个包

mongodb, mongodb-server, 和 mongodb-clients。

MongoDB仅仅提供Ubuntu 12.04 LTS和14.04 LTS版本下的包,当然,有可能也能在其他Ubuntu版本。

由3.0系列的包提供的默认的/etc/mongod.conf配置文件默认配置了bind_ip为127.0.0.1,可以根据自己的需要去更改。

 

开始安装:

1、导入公钥到包管理系统

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

2、为MongoDB创建一个来源列表

执行这个命令会创建/etc/apt/sources.list.d/mongodb-org-3.0.list列表文件

echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.0.list

3、更新本地包数据库

sudo apt-get update

4、安装最新的稳定版MongoDB

sudo apt-get install -y mongodb-org

 

等待安装完成后就可以开始使用MongoDB了。

 

运行MongoDB:

MongoDB默认把数据文件存放于/var/lib/mongodb目录下,日志文件存于/var/log/mongodb目录下。,并使用mongodb用户运行。这两个目录可以在/etc/mongod.conf中修改。主要是systemLog.pathstorage.dbPath这两个属性指定的这两个目录。

如果修改了运行MongoDB的用户,一定不要忘记更改/var/lib/mongodb和/var/log/mongodb这两个目录的权限。

1、启动MongoDB

sudo service mongod start

 

2、验证是否正常启动

验证mongod进程成功启动可以检查/var/log/mongodb/mongod.log日志文件内容当中的一行[initandlisten] waiting for connections on port <端口号>. 这个端口号一般是在/etc/mongod.conf文件中配置的端口号,默认为27017。

 

3、停止MongoDB

sudo service mongod stop

 

4、重启MongoDB

sudo service mongod restart

 

5、开始使用MongoDB

 

连接数据库:

 

连接数据库可以使用mongo shell。mongo是MongoDB内置的一个工具,包含了一个完整的JavaScript环境,还有一套完整的接口去使用JavaScript语言访问MongoDB。

 

1、连接数据库使用命令:

mongo

默认情况下,mongo使用localhost:27017连接数据库服务器,如果需要更改主机地址和端口号,那就要使用—port和—host参数控制。

 

2、选择一个数据库

启动mongo shell以后,当前的控制台会话默认会使用test数据库,任何时候可以使用db命令告诉操作者当前使用了哪个数据库。

db

这个命令执行后,屏幕上可能是以下结果:

>db

test

>

可以看出来当前使用的是test数据库

 

3、列出所有的数据库

show dbs

 

4、切换到另外的数据库,如果不存在将会创建一个新数据库(假如叫mydb)

use mydb

 

5、不放心?那就再执行db命令确认一下当前是不是在你的数据库下

db

 

这里要注意一下,你这时候再执行show dbs命令,结果当中不会mydb这个数据库。MongoDB不会永久创建一个数据库到磁盘上,除非你在这个数据库中插入了数据。

 

tip:show dbs和show databases效果相同

 

下面会简单地说明

 

插入数据和查询:

 

在这一段,你将使用mydb这个数据库,插入的文档到一个新的testData集合当中。

MongoDB将会隐性创建一个初次使用的集合。插入数据前你不需要预先创建一个集合。而且,因为MongoDB使用动态scheme,也不需要在插入数据到集合之前指明你的文档结构。

  1. mongo shell中, 确认你再mydb 数据库中:

    db
  2. 如果mongo在上一个命令的操作中没有返回mydb,那就使用以下命令设置当前使用的数据库为mydb:

    use mydb
  3. 创建两个文档,分别命名为j和k,使用以下JS脚本操作:

    j = { name : "mongo" }
        k = { x : 3 } 
  4. 把j和k文档插入到testData集合当中:

    db.testData.insert( j )
    db.testData.insert( k )

    当插入第一个文档的时候,mongod才会真正创建mydb数据库和testData集合。

  5. 确认testData集合是否存在:

    show collections

    mongo shell 将会返回当前数据库的集合列表(i.e. mydb) . 在这个例子当中, 只有一个集合testData.

  6. 确认文档存在于testData集合中,我们可以使用find()方法执行一个查询:

    db.testData.find()

    这个操作返回了以下结果,ObjectId 值将会是不重复的:

    { "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
    { "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }

    所有的MongoDB文档必须存在一个_id字段,且不可重复。这些操作并不会为_id字段显性地复制,因此mongo会创建一个特一值ObjectId给字段,然后再插入到集合当中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值