mongodb安装与基础使用
2014-01-24 11:47
549 查看
一:mongodb安装
1.下载安装包
http://www.mongodb.org 找到相应的版本下载
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.2.tgz
2.解压压缩包
tar zxvfmongodb-linux-i686-2.0.2.tgz
最好给解压的文件夹改个名字,方便操作。
mvmongodb-linux-i686-2.0.2 mongodb
3.将mongodb移动到/usr/local/mongo文件夹
mv mongodb/usr/local/mongodb
创建数据库文件夹(默认的数据库文件的位置是/data/db,启动时会自动创建)
mkdir /usr/local/mongodb/data
touch dblogs 创建一个dblogs来存放日志
4.开机自启动
将mongodb启动项目加入rc.local保证mongodb在服务器开机时启动
echo"/usr/local/mongodb/bin/mongod--dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/dblogs--fork" >> /etc/rc.local
5.启动mongoDB
运行mongod命令
--dbpath执行数据库存放路径(默认是/data/db)
--fork是以Daemon(守护进程)方式运行
注意:如果指定--fork参数,必须指定--logpath日志文件路径 如果不加--fork参数,则需要再开启一个MongoDB启动窗口
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data--logpath=/usr/local/mongodb/logs/log –fork
6.关闭mongodb
Pkillmongod
7.进入客户端操作
/usr/local/mongodb/bin/mongo
二:mongodb常用命令
Show dbs 查看数据库
Db 当前数据库
Show tables 当前数据库下的集合
Db.c1.insert({name:”user1”}) 插入数据
Db.c1.find();
Db.system.users.find()查看用户列表
Show users 查看所有用户
Showcollections 查看所有集合
Db.doroDatabase();删除当前数据库
删除Collection db.集合名.drop();
想知道mongodb支持哪些命令,可以直接输入help;
想知道当前数据库支持哪些方法:db.help();
想知道当前集合支持哪些方法:db.user.help();user为集合名
三:mongodb增删改查
1)增加数据:
Insert
Save如果主键相同,则更新
删除数据:
remove
2)查询数据
Db.user.find({_id:{$gt:20}}).limit(8); 取8个
Db.user.find({_id:{$gt:20}}).skip(1).limit(8);取2到8个
Db.c1.count(); db.c1.find().count();统计个数 count的参数为1的情况,可以结合前面的条件,统计
Db.find().sort(age:1) 升序
Db.find().sort(aget:-1);降序
$all操作类似$in操作,但是不同的是,$all操作要求数组里面的值全部被包含在返回的记录里面
$exists操作检
4000
查一个字段是否存在
Db.c1.find({age:{$exists:1}}) 判断age字段是否存在
$ne的意思是not equal不等于
Db.c1.find({_id:{$ne:0}}).limit(5);
$in 操作类似于传统关系数据库中的IN
Db.c3.find({“post.tid”:2}); post字段里面放的的json对象,这样可以查找post字段中属性tid为2的数据。(为了避免其他语言对点造成干扰,因此常用$elemMatch)
3)更改数据
Db.collection.update(criteria,objNew,upsert,multi);
Criteria 用于设置查询条件的对象
objNew 用于设置更新内容的对象
upsert 如果记录存在更新,否则新增一个记录
multi 如果有多个符合条件对象,则全部更新(默认只更新第一条)
$set $inc用法
db.users.update({age:25}, {$set: {name: 'changeName'}}, false, true);
相当于:update users setname = ‘changeName’ where age = 25;
db.users.update({name:'Lisi'}, {$inc: {age: 50}}, false, true);
相当于:update users setage = age + 50 where name = ‘Lisi’;
db.users.update({name:'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);
相当于:update users setage = age + 50, name = ‘hoho’ where name = ‘Lisi’;
$unset 删除给定字段
$push向数组中压入一个值
$pop 从数组中弹出一个值
四:固定集合
属性:
对固定集合进行插入速度极快
按照插入顺序的的查询输出速度极快
能够再插入最新数据时,淘汰老的数据
创建固定集合:
不像普通集合,需要显式创建
db.createCollection(“my_collection”,{capped:true,size:1000})
GridFS可以用来存储较大的二进制文件,比如音频,视频等(具体使用,查看收手册)
五:性能优化
1)索引管理:
创建索引
db.persons.ensureIndex({name:1},{background:true})
查询索引
db.c1.getIndexKeys();
2)性能优化:
解析查询语句
Db.c2.find(user:”user5”).explain();
优化器profile
是一种慢查询日志功能,开启profile有两种方式可以控制profiling的开关和级别
启动mongdb时加上-profile=级别即可.级别为0,1,2三个值,0不开启,1记录慢命令(默认为)100ms)2记录所有命令
客户端使用db.setProfilingLevel(级别)命令来实时配置
Profiler信息保存在system.profile中。我们可以通过db.getPrifilingLevel()命令来获取当前的profile级别
3)性能监控:
工具mongosniff
./nongosniff –sourceNET lo
六.Mongodb管理
数据导入 mongoexport
数据导出 mongoimport
用户安全与认证 :启动时有—auto参数后,数据库会开启对使用者的验证。用户分为超级管理员和数据库管理员。超级管理员需要到admin验证后,才可以进入其他数据库。数据库管理员在其数据库进行验证,并只能管理其数据库。一个数据库增加管理员之后,该数据库会创建一张表,来存贮管理员
六. Mongodb 架构
Master-Slave
ReplicaSets
七.mongodb 安装扩展
wget http://pecl.php.net/get/mongo-1.2.6.tgz
tar zxf mongo-1.2.6.tgz
cd mongo-1.2.6
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config --enable-mongo
make && make install
查看so模块
cd/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
ls
vim /usr/local/php/etc/php.ini
extension=mongo.so
如果是nginx的话需要重启php-fpm
1.下载安装包
http://www.mongodb.org 找到相应的版本下载
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.2.tgz
2.解压压缩包
tar zxvfmongodb-linux-i686-2.0.2.tgz
最好给解压的文件夹改个名字,方便操作。
mvmongodb-linux-i686-2.0.2 mongodb
3.将mongodb移动到/usr/local/mongo文件夹
mv mongodb/usr/local/mongodb
创建数据库文件夹(默认的数据库文件的位置是/data/db,启动时会自动创建)
mkdir /usr/local/mongodb/data
touch dblogs 创建一个dblogs来存放日志
4.开机自启动
将mongodb启动项目加入rc.local保证mongodb在服务器开机时启动
echo"/usr/local/mongodb/bin/mongod--dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/dblogs--fork" >> /etc/rc.local
5.启动mongoDB
运行mongod命令
--dbpath执行数据库存放路径(默认是/data/db)
--fork是以Daemon(守护进程)方式运行
注意:如果指定--fork参数,必须指定--logpath日志文件路径 如果不加--fork参数,则需要再开启一个MongoDB启动窗口
/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data--logpath=/usr/local/mongodb/logs/log –fork
6.关闭mongodb
Pkillmongod
7.进入客户端操作
/usr/local/mongodb/bin/mongo
二:mongodb常用命令
Show dbs 查看数据库
Db 当前数据库
Show tables 当前数据库下的集合
Db.c1.insert({name:”user1”}) 插入数据
Db.c1.find();
Db.system.users.find()查看用户列表
Show users 查看所有用户
Showcollections 查看所有集合
Db.doroDatabase();删除当前数据库
删除Collection db.集合名.drop();
想知道mongodb支持哪些命令,可以直接输入help;
想知道当前数据库支持哪些方法:db.help();
想知道当前集合支持哪些方法:db.user.help();user为集合名
三:mongodb增删改查
1)增加数据:
Insert
Save如果主键相同,则更新
删除数据:
remove
2)查询数据
Db.user.find({_id:{$gt:20}}).limit(8); 取8个
Db.user.find({_id:{$gt:20}}).skip(1).limit(8);取2到8个
Db.c1.count(); db.c1.find().count();统计个数 count的参数为1的情况,可以结合前面的条件,统计
Db.find().sort(age:1) 升序
Db.find().sort(aget:-1);降序
$all操作类似$in操作,但是不同的是,$all操作要求数组里面的值全部被包含在返回的记录里面
$exists操作检
4000
查一个字段是否存在
Db.c1.find({age:{$exists:1}}) 判断age字段是否存在
$ne的意思是not equal不等于
Db.c1.find({_id:{$ne:0}}).limit(5);
$in 操作类似于传统关系数据库中的IN
Db.c3.find({“post.tid”:2}); post字段里面放的的json对象,这样可以查找post字段中属性tid为2的数据。(为了避免其他语言对点造成干扰,因此常用$elemMatch)
3)更改数据
Db.collection.update(criteria,objNew,upsert,multi);
Criteria 用于设置查询条件的对象
objNew 用于设置更新内容的对象
upsert 如果记录存在更新,否则新增一个记录
multi 如果有多个符合条件对象,则全部更新(默认只更新第一条)
$set $inc用法
db.users.update({age:25}, {$set: {name: 'changeName'}}, false, true);
相当于:update users setname = ‘changeName’ where age = 25;
db.users.update({name:'Lisi'}, {$inc: {age: 50}}, false, true);
相当于:update users setage = age + 50 where name = ‘Lisi’;
db.users.update({name:'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);
相当于:update users setage = age + 50, name = ‘hoho’ where name = ‘Lisi’;
$unset 删除给定字段
$push向数组中压入一个值
$pop 从数组中弹出一个值
四:固定集合
属性:
对固定集合进行插入速度极快
按照插入顺序的的查询输出速度极快
能够再插入最新数据时,淘汰老的数据
创建固定集合:
不像普通集合,需要显式创建
db.createCollection(“my_collection”,{capped:true,size:1000})
GridFS可以用来存储较大的二进制文件,比如音频,视频等(具体使用,查看收手册)
五:性能优化
1)索引管理:
创建索引
db.persons.ensureIndex({name:1},{background:true})
查询索引
db.c1.getIndexKeys();
2)性能优化:
解析查询语句
Db.c2.find(user:”user5”).explain();
优化器profile
是一种慢查询日志功能,开启profile有两种方式可以控制profiling的开关和级别
启动mongdb时加上-profile=级别即可.级别为0,1,2三个值,0不开启,1记录慢命令(默认为)100ms)2记录所有命令
客户端使用db.setProfilingLevel(级别)命令来实时配置
Profiler信息保存在system.profile中。我们可以通过db.getPrifilingLevel()命令来获取当前的profile级别
3)性能监控:
工具mongosniff
./nongosniff –sourceNET lo
六.Mongodb管理
数据导入 mongoexport
数据导出 mongoimport
用户安全与认证 :启动时有—auto参数后,数据库会开启对使用者的验证。用户分为超级管理员和数据库管理员。超级管理员需要到admin验证后,才可以进入其他数据库。数据库管理员在其数据库进行验证,并只能管理其数据库。一个数据库增加管理员之后,该数据库会创建一张表,来存贮管理员
六. Mongodb 架构
Master-Slave
ReplicaSets
七.mongodb 安装扩展
wget http://pecl.php.net/get/mongo-1.2.6.tgz
tar zxf mongo-1.2.6.tgz
cd mongo-1.2.6
/usr/local/php/bin/phpize
./configure--with-php-config=/usr/local/php/bin/php-config --enable-mongo
make && make install
查看so模块
cd/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/
ls
vim /usr/local/php/etc/php.ini
extension=mongo.so
如果是nginx的话需要重启php-fpm
相关文章推荐
- YiiMongoDbSuite
- mongodb备份与恢复
- Linux中MongoDB无法正常启动的问题解决办法!
- MongoDB数据读写的几种方法
- 留一个C#版。操作MONgoDB对数组进行增删改查
- HBase与MongoDB的区别
- MongoDB基本使用
- MongoDB学习系列9:MongoDB里的若干规则
- MongoDB学习系列10:mongodb的数据类型
- Mongodb 修改器
- ORACLE和MONGODB,必须也得进入。
- NoSql--Mongodb简介
- 关于MongoDb Replica Set的故障转移集群——理论篇
- mongodb常用命令
- Win7下安装MongoDB 2.4 数据库
- MongoDB journaling 工作原理
- Mongodb Manual阅读笔记:CH3 数据模型(Data Models)
- PHPnow For ASP&&ASP.NET&&MongoDB&&MySQL支持VC6.0编译器&&MySQL升级
- MongoDB:mongodb在项目开发时的安全验证、分页查询操作
- MongoDB:mongodb在项目开发时的安全验证、分页查询操作