mongodb是nosql数据库,是面向文档的,对比mysql这样的关系型数据库有其优势,比如表(文档)的字段扩展,是任性的,是json格式的。mongodb还有一个比较常知道的,在计算地理距离,球面距离很高效。
下面是它的安装过程,以linux64(mongodb不建议使用32位的操作系统,存储受限)为例子:
官网下载地址:https://www.mongodb.org/downloads/#production
官网的安装运行步骤:https://docs.mongodb.org/manual/tutorial/install-mongodb-on-linux/
安装运行的步骤已经很详细了,虽然是英文,不过步骤也不难理解。我就简单翻译下哈哈~
安装:1.下载二进制的压缩包 2.解压 3.创建一个mongodb的文件夹,并把这个解压后的二进制包放在其中 4.把mongod的命令放在全局命令执行
运行:1.创建一个mongodb存放数据的文件夹/data/db 2.确保执行用户有对这些个文件夹的读写权限 3.然后运行
稍微写一下:
# cd /usr/local/src #下载一个二进制包 # curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.11.tgz #解压 # tar -zxvf mongodb-linux-x86_64-3.2.11.tgz # 创建一个mongodb的目录 # mkdir -p /usr/local/mongodb # 把解压后的二进制包放到创建的目录下,里头有个bin目录 # cp -R -n /usr/local/src/mongodb-linux-x86_64-3.2.11/ /usr/local/mongodb/ # 全局命令 # export PATH=/usr/local/mongodb/bin:$PATH # 创建mongodb存储数据的文件夹 # mkdir -p /data/db # 运行 # mongod
当然存储mongodb数据文件的地方不是一定要在/data/db下,只是默认在这。mongod启动的时候可以加一个f参数,指定配置文件,比如配置端口,data存储文件夹,log文件夹等。
比如:
# mongod -f conf/mongod.conf
配置文件的属性,
比如:
storage:
dbPath: "/home/work/hansongda/data"
journal:
enabled: true
net:
bindIp: 127.0.0.1
port: 27017
setParameter:
enableLocalhostAuthBypass: false
查看服务是否启用了,
# netstat -anp | grep mongod
安装运行了~开始操练起来吧哈哈~
客户端连接可以执行
# mongo 127.0.0.1
进入mongo的操作界面:简单写几个增删改命令,各种json。懂得json,学mongo这些命令还是比较容易的~
>show dbs
>use test
>db.test_collection.insert({a:1,b:2})
>db.test_collection.find()
>db.test_collection.update({a:1},{$set:{b:3}}) #只更新b字段,其它字段不动
>db.test_collection.remove({a:1})
mongodb的语法和mysql对比来看也好记住。有个网友总结的:http://www.cnblogs.com/yangxia-test/p/3979981.html
这里顺便说一下php操作mongodb,php扩展安装可以参照这个教程:http://www.runoob.com/mongodb/mongodb-install-php-driver.html
php操作mongo的一个连接操作示例:
1 <?php 2 3 error_reporting(-1); 4 ini_set('display_errors',-1); 5 6 // 连接到mongodb 7 $m = new MongoClient(); 8 echo "Connection to database successfully"; 9 // 选择一个数据库 10 $db = $m->test; 11 12 echo "Database test selected"; 13 14 $collection = $db->test_collection;// 具体哪个集合(表 15 $document = array( 16 "title" => "MongoDB", 17 "id" => "1", 18 ); 19 $collection->insert($document);