一. 简介
MongoDB是介于传统数据库和NoSQL数据库之间的一种非关系型数据库。MongoDB使用c++实现,具有高可靠,高可用等优秀特性。
每条记录相当于一个document。documment-->rowcollection-->tabledb-->dbmongo-->mysql二. 特性
(1)面向文档(document)的存储方式BSON(二进制json)
文档的schema没有严格要求,方便灵活。(2)全索引支持 (3)支持同步并且高可用 (4)自动sharding(alpha阶段) (5)灵活的数据查询 (6)支持MapReduce (7)其他:GridFS,多种语言接口,建立索引不阻塞三. 安装
• linux
1)将mongodb-linux-x86_64-2.6.2.tgz解压到/root/programs2)配置环境(/etc/profile)#MongoDBexport MongoDB_HOME=/root/programs/mongodb-linux-x86_64-2.6.2export PATH=$MongoDB_HOME/bin:$PATH
#source /etc/profile
四. 基本命令
• 启动服务(默认dbpath为/data/db)
#mongod#mongod -dbpath /opt/data/mongodb默认服务端口为27017后台启动1)添加配置文件mongodb.conf(dbpath需要人工创建)port=27017dbpath=data/dblogpath=logs/mongodb.loglogappend=truefork=true
2)启动
mongod -f mongodb.conf 3)关闭bin/mongod -f mongodb.conf --shutdown• 客户端连接DB#mongo#mongo --host localhost --port 27017连上后,默认使用test DB• 命令行工具1)查看当前db>db2)查看其他DB(不包含当前使用的)>show dbs3)切换或创建DB#use mydb4)查询当前DB下的所有collections>show collections5)插入document>x={x:"1"}>db.test.insert(x) //test 集合如果不存在,则创建>for (var i = 1; i <= 25; i++) db.testData.insert( { x : i } )6)查询document>db.test.find()>var c = db.testData.find()>while ( c.hasNext() ) printjson( c.next() )>db.test.find( { x : "7" } )db.test.find({x:"1"},{"_id":0}) //不包含_id>db.test.find().limit(3)>db.users.find( { age: { $gt: 18 } }, { name: 1, address: 1 } ).limit(5).sort({age:1})>db.test.find( { x: { $in: [ '1', '3' ] } } )>db.inventory.find( { x: '1', $or: [ { qty: { $gt: 100 } }, { price: { $lt: 9.95 } } ]} )五. 用户管理
• 创建超级用户
1)mongod以不带--auth方式启动2)切到admin DB下>use admin3)添加用户及密码>addUser("admin","password")4)重启mongod,以带--auth方式启动5)以后需要该用户的时候>db.auth("admin","password")• 创建普通用户2)切到admin DB下并用超级用户登陆>use admin>db.auth("admin","password")3)切到目标DB下并创建用户>use test>db.addUser("user","passwd")