Linux下MongoDB数据库的安装和CRUD操作
1、查看系统发行版本,linux命令:
#cat /proc/version
Linux version 2.6.32-573.el6.x86_64 (mockbuild@c6b9.bsys.dev.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) ) #1 SMP Thu Jul 23 15:44:03 UTC 2015
看到我们是centos版本, 而centos是基于redhat版的,所以我们看列表中有centos版就下载centos版本,没有就下载redhat版本
如果没有redhat版本就下载linux版本。

2、百度mongodb找到mongodb官网mongodb点com,找到首页右上角,download进入下载页面
1、选择linux系统,
2、选择合适的发行版本, 如何选择见步骤一
3、选择二进制包, All Version Binaries

3、进入linux-Mongodb二进制包下载列表,选择最新的版本,我们是正式使用,就不选debug版本,右键复制链接地址。

4、进入我们要安装mongodb的服务器,进入/usr/local/src 目录,一般惯例安装源码包都放这里呢,下载压缩文件。
#wget 你刚才复制的下载地址

5、等待文件下载好,因为文件名有点乱,重命名下文件
mv 刚下载的文件 mongodb.taz
2、解压缩文件
tar -zxvf mongodb.taz
3、进入解压好的文件夹
cd mongodb
4、新建data,log数据库,新建mongodb.log日志文件

6、安装好一切,进入到/usr/local/src/mongodb
开始启动mongodb服务
#./bin/mongod -port 10001 --dbpath data/ --logpath log/mongodb.log --fork
mongodb默认端口27017,这里指定端口10001,
--fork 指定后台运行
如下图,启动成功。
[root@localhost mongodb]# cd /usr/local/src/mongodb
[root@localhost mongodb]# ./bin/mongod -port 10001 --dbpath data/ --logpath log/mongodb.log --fork
about to fork child process, waiting until server is ready for connections.
forked process: 29039
child process started successfully, parent exiting

7、连接刚才安装的mongodb服务器,
命令 mongo ip:端口号
#./bin/mongo 127.0.0.1:10001
如下图,
查看数据库列表
show dbs
查看当前数据库
db
选择test数据库
use test
查看当前数据库所有的集合
show collections
查看5条collectionName集合的记录
db.collectionName.find().limit(5);

8、刚才查询数据太多,使用pretty()命令格式化数据,看数据更人性化
>db.startup_log.find().limit(1).pretty()

1、除了用shell操作mongodb,在实际开发过程中,以PHP来操作Mongodb为例,短短几行代码实现了连接,插入,查询操作

2、这里用没有采用复杂的mongodb类库,直接用原生写法创建连接实例,更多的用法如下
//连接远程主机10001端口
$this->_mongo = new MongoClient('mongodb://10.25.209.90:10001');
//MongoDB有用户名密码并指定数据库POI
$conn = new Mongo("mongodb://${username}:${password}@localhost/POI");
//选择库$db = $this->_mongo->POI;//选择POICols
return $db->POICols;
//新增
$user = array('name' => 'caleng', 'email' => 'admin#admin.com');
$collection->insert($user);
//修改
$newdata = array('$set' => array("email" => "test@test.com"));
$collection->update(array("name" => "caleng"), $newdata);
//删除
$collection->remove(array('name'=>'caleng'), array("justOne" => true));
//查找
$cursor = $collection->find();
var_dump($cursor);
//查找一条
$user = $collection->findOne(array('name' => 'caleng'), array('email'));
var_dump($user);
//关闭数据库
$con->close();
3、注意在实际使用过程中,记得优化一下插入的数据,尽量用短符号,减少数据冗余,节省磁盘空间;这给出格式化函数示例。
