zoukankan      html  css  js  c++  java
  • MongoDB是我想要的存储么?

    最近一直在思考底层数据模型对整个产品的影响,底层实现直接影响到上层的性能及开发效率,又要满足快速迭代及快速产品扩展的需求,就考虑到了NOSQL数据库了,通过对比就选择了MongoDB,打算通过他好好的了解下NOSQL,记得几个月前看了javaeye老大写的哪篇NOSQL的文章还没有深入去思考,现在是工作上需要用到了,就想深入了解下,对于数据库,MySQL一直是我的唯一选择,但是现在MySQL的各种问题都暴露出来的了,在很多场景下其实有更好的做法去替代,不管从节约机器上,还是从性能上来说都是有益的,所以就花时间深入了解下MongoDB了。

    先贴点资料吧:

    MongoDB的官方网站 http://www.mongodb.org

    不周山博客上的MongoDB的总结 http://www.wentrue.net/blog/?p=772

    超群的MongoDB in Action http://www.fuchaoqun.com/2010/01/mongodb-in-action/  

    PPT地址:http://www.fuchaoqun.com/2010/01/mongodb-in-action/

    MongoDB的安装地址:http://www.tbdata.org/archives/410

    PHP安装MongoDB驱动 http://cn.php.net/manual/en/mongo.installation.php#mongo.installation.nix

    官方文档 http://www.mongodb.org/pages/viewpage.action?pageId=5079170

    http://www.mongodb.org/display/DOCS/Schema+Design

    INFOQ上的介绍 http://www.infoq.com/cn/news/2010/04/mongodb

    PHP上的支持文档 http://php.net/manual/en/book.mongo.php

    接下来秀下自己的安装的结果,算是对今晚工作的一个记录了,先让自己的环境跑起来了,真的去用了,去体验了才感觉到它的强大

    安装成功截图,我是在Ubuntu下直接使用了Synaptic Packages Manager 来安装的 ^_^ 没有任何的计算含量了,无奈机器不支持虚拟机的64位安装

    接下来要做的是PHP下使用MongoDB的具体步骤了.....

    1.安装PHP mongo 支持 (这里如果报phpize错误,请安装php5-dev  ,  sudo apt-get install php5-dev

    2.安装完了mongo后如果无法启动请链接 ln - s /usr/lib/xulrunner-1.9.2.12/libmozjs.so /usr/lib/libmozjs.so 链接后就可以启动了

    3.启动成功之后的截图

    4. 安装PHP支持后的截图

    5.安装成功后 new Mongo() 取得实例后打印出来的结果

    6.分享下超群同学写的mongodb类。。。。。。

    贴出超群写的MongoDB下的PHP的操作类Cola_COM_Mongo一看就知道如何操作了,具体操作语句见超群的PPT了

    <?php
    Class Cola_Com_Mongo
    {
        protected $_mongo, $_db;
    
        /**
         * Constructor
         *
         * @param array $config
         */
        public function __construct($config = array())
        {
            $config = (array)$config + array('server' => 'mongodb://localhost:27017', 'options' => array('connect' => true));
    
            extract($config);
    
            $this->_mongo = new Mongo($server, $options);
    
            if (isset($database)) $this->db($database);
    
            if (isset($user) && isset($password)) $this->auth($user, $password);
        }
    
        /**
         * Authenticate
         *
         * @param string $user
         * @param string $password
         */
        public function auth($user, $password)
        {
            $result = $this->_db->authenticate($user, $password);
    
            if (1 == $result['ok']) {
                return true;
            }
    
            throw new Cola_Exception('Mongo Auth Failed: bad user or password.');
        }
    
        /**
         * Select Database
         *
         * @param string $db
         * @return MongoDB
         */
        public function db($database = null)
        {
            if ($database) {
                $this->_db = $this->_mongo->selectDB($database);
            }
    
            return $this->_db;
        }
    
        /**
         * Select Collection
         *
         * @param string $collection
         * @return MogoCollection
         */
        public function collection($collection)
        {
            return $this->_db->selectCollection($collection);
        }
    
        /**
         * MongoId
         *
         * @param string $id
         * @return MongoId
         */
        public static function id($id = null)
        {
            return new MongoId($id);
        }
    
        /**
         * MongoTimestamp
         *
         * @param int $sec
         * @param int $inc
         * @return MongoTimestamp
         */
        public static function Timestamp($sec = null, $inc = 0)
        {
            if (empty($sec)) $sec = time();
            return new MongoTimestamp($sec, $inc);
        }
    
        /**
         * GridFS
         *
         * @return MongoGridFS
         */
        public function gridFS($prefix = 'fs')
        {
            return $this->_db->getGridFS($prefix);
        }
    }
    

    MongoDB下的数据库设计工具

    对比了几个管理工具之后选择了开源的rockmongo很不错的管理工具类似PHPMYADMIN 

    下载地址: http://code.google.com/p/rock-php/wiki/rock_mongo_zh

  • 相关阅读:
    循环逗号分割数组!
    只是想好好学习一下!
    html元素水平垂直居中
    闭包知识点--笔记
    20160314
    从零开始做运维-零
    Nginx 和 CodeIgniter
    安装PIL库
    init
    NutUI3 多端实践之路
  • 原文地址:https://www.cnblogs.com/scotoma/p/1881325.html
Copyright © 2011-2022 走看看