mongoDB简介(本文由www.169it.com搜集整理)
MongoDB是一个高性能,开源,无模式的文档型数据库,是目前在IT行业非常流行的一种非关系型数据库(NoSql)。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。Mongo使用C++开发。Mongo的官方网站地址是:http://www.mongodb.org/.MongoDB灵活的数据存储方式备受当前IT从业人员的青睐。MongoDB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。
2015年3月3日,MongoDB 3.0 正式版本发布!这标志着 MongoDB 数据库进入了一个全新的发展阶段,提供强大、灵活而且易于管理的数据库管理系统。MongoDB宣称,3.0新版本不只提升7到10倍的写入效率以及增加80%的数据压缩率,还能减少95%的运维成本。
mongoDB 3.0下载
mongoDB 3.0下载地址: mongoDB 3.0下载
官方提供的mongoDB 3.0可下载的各个版本如下图所示:
mongodb 3.0如何安装呢?具体安装步骤如下:
mongodb 3.0在Linux上的安装步骤(主要是指在redhat/centos上的安装过程)
1. 在redhat/centos配置mongodb 3.0的yum源.
在redhat/centos上建立一个yum源文件 /etc/yum.repos.d/mongodb-org-3.0.repo 并将以下信息添加到文件中,
1
2
3
4
5
|
[mongodb-org-3.0] name=MongoDB Repository baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/ gpgcheck=0 enabled=1 |
2 安装 mongoDB 3.0 和相关工具,执行如下安装命令:
1
|
sudo yum install -y mongodb-org // 安装最新版mongodb
|
或
1
|
sudo yum install -y mongodb-org-3.0.0 mongodb-org-server-3.0.0 mongodb-org-shell-3.0.0 mongodb-org-mongos-3.0.0 mongodb-org-tools-3.0.0 // 安装mongodb 3.0
|
mongodb 3.0 在Windows上的安装配置步骤:
1. 根据windows版本选择下载相应的mongodb 3.0版本的msi文件。
2. 点击下载mongodb 3.0版本的msi文件。
3. 双击下载的windows安装文件mongodb-win32-x86_64-2008plus-ssl-3.0.0-signed.msi,直接安装。
4. 安装完成后,mongodb 3.0的默认安装目录为C:\mongodb。
MongoDB 3.0主要新特性包括:
1)可插入式的存储引擎 API
2)支持 WiredTiger 存储引擎
3)MMAPv1 提升
4)复制集全面提升
5)集群方面的改进
6)提升了安全性
7)工具的提升
MongoDB 3.0 在性能和扩展性方面都有非常巨大的提升,通过在存储层的大幅改进实现。新版不仅强化原本的MMAPv1储存引擎,还内置WiredTiger存储引擎以及能减少运维人员日常例行性工作的管理平台(Ops Manager)。
WiredTiger 存储引擎是一项难以置信的技术实现,提供无门闩、非堵塞算法来利用先进的硬件平台(如大容量芯片缓存和线程化架构)来提升性能。通过 WiredTiger,MongoDB 3.0 实现了文档级别的并发控制,因此大幅提升了大并发下的写负载。
因为WiredTiger,MongoDB 3.0才能有文档级别的并行控制(Concurrency Control),即使处理频繁写入任务,数据库依然能维持效能一定的稳定度和可预测性。另外,用户可以自己选择储存数据的压缩比例,MongoDB 3.0提供最高达80%的压缩率,不过压缩率越高数据处理的时间成本也越多,用户可以自行权衡应用。
MongoDB常用命令教程
mongodb超级用户相关命令:
use admin
#增加或修改用户密码
db.addUser(169it,'pwd')
#查看用户列表
db.system.users.find()
#用户认证
db.auth(169it,'pwd')
#删除用户
db.removeUser('mongodb')
#查看所有用户
show users
#查看所有数据库
show dbs
#查看所有的collection
show collections
#查看各collection的状态
db.printCollectionStats()
#查看主从复制状态
db.printReplicationInfo()
#修复数据库
db.repairDatabase()
#设置记录profiling,0=off 1=slow 2=all
db.setProfilingLevel(1)
#查看profiling
show profile
#拷贝数据库
db.copyDatabase('mail_addr','mail_addr_tmp')
#删除collection
db.mail_addr.drop()
#删除当前的数据库
db.dropDatabase()
mongodb客户端连接命令:
/usr/local/mongodb/bin/mongo 8.8.88/ixigualib -u ixigua -p 'pwd'
mongodb增删改命令:
#存储嵌套的对象
db.foo.save({'name':'ysz','address':{'city':'beijing','post':100096},'phone':[138,139]})
#存储数组对象
db.user_addr.save({'Uid':'169it@sohu.com','Al':['test-1@sohu.com','test-2@sohu.com']})
#根据query条件修改,如果不存在则插入,允许修改多条记录
db.foo.update({'yy':5},{'$set':{'xx':2}},upsert=true,multi=true)
#删除yy=5的记录
db.foo.remove({'yy':5})
#删除所有的记录
db.foo.remove()
mongodb索引命令:
#增加索引:1(ascending),-1(descending)
db.things.ensureIndex({firstname: 1, lastname: 1}, {unique: true});
#索引子对象
db.user_addr.ensureIndex({'Al.Em': 1})
#查看索引信息
db.deliver_status.getIndexes()
db.deliver_status.getIndexKeys()
#根据索引名删除索引
db.user_addr.dropIndex('Al.Em_1')
mongodb查询命令:
#查找所有
db.foo.find()
#查找一条记录
db.foo.findOne()
#根据条件检索10条记录
db.foo.find({'msg':'Hello 1'}).limit(10)
#sort排序
db.deliver_status.find({'From':'169it@sina.com'}).sort({'Dt',-1})
db.deliver_status.find().sort({'Ct':-1}).limit(1)
#count操作
db.user_addr.count()
#distinct操作
db.foo.distinct('msg')
#>操作
db.foo.find({"timestamp": {"$gte" : 2}})
#子对象的查找
db.foo.find({'address.city':'beijing'})
mongodb管理命令:
#查看collection数据的大小
db.deliver_status.dataSize()
#查看colleciont状态
db.deliver_status.stats()
#查询所有索引的大小
db.deliver_status.totalIndexSize()
#查看当前所使用的数据库
db