安装Mongo数据库:
在发布本文的时间官方提供的最新版本是:2.2
Windows 7下安装MongoDB数据库图文教程
最近有幸接触到NoSQL的数据库MongoDB,感受了下NoSQL存储的特色同时,顺便把Windows下安装MongoDB的过程也记录下来,方便记忆巩固。
1. 下载Windows版本的 MongoDB 数据库
到官方的下载页面下载mongodb的windows版本,32位还是64位根据自己的情况自行选择
http://www.mongodb.org/downloads
2. 安装准备
将下载的压缩包解压缩并放置到你想放置的位置,在目录下建立一个叫做DB的文件夹和一个log.txt的文件
DB文件夹用于存储数据库
log.txt用于记录MongoDB的日志
3. 安装MongoDB
这里讲的方法是将MongoDB安装为Windows的服务的方式,打开windows的命令行(注意:请使用个管理员权限启动命令行)并移动到你MongoDB目录下的Bin文件夹,我这里演示的路径是d:\DEV\ENV\mongodb
输入下列命令可将MongoDB注册为Windows服务:
mongod.exe --install --logpath=D:\DEV\ENV\mongodb\log.txt --dbpath=D:\DEV\ENV\mongodb\DB
--install 参数是设定安装为服务器
--logpath 参数是设定日志文件的路径,log.txt是在上一步建立好的文件
--dbpath 参数是设定数据库文件的存放路径,DB文件夹在上一步骤已经创建好
执行结果如下:
这时再输入
net start mongodb
即可启动mongodb服务
启动后,再到命令行输入
mongo
如果成功的进入mongo的shell环境(参见下图)那么就说明MongoDB已经安装成功了,开始你的NoSQL之旅吧!
实例:
- show dbs // 列出所有数据库
- use memo // 使用数据库memo。即使这个数据库不存在也可以执行,但该数据库不会立刻被新建,要等到执行了insert之类的操作时,才会建立这个数据库
- show collections // 列出当前数据库的collections
- db // 显示当前数据库
- show users // 列出用户
MongoDB的查询语法很强大。例如,很多SQL可以做的,它都可以做:
- coll.find() // select * from coll
- coll.find().limit(10) // select * from coll limit 10
- coll.find().sort({x:1}) // select * from coll order by x asc
- coll.find().sort({x:1}).skip(5).limit(10) // select * from coll order by x asc limit 5, 10
- coll.find({x:10}) // select * from coll where x = 10
- coll.find({x: {$lt:10}}) // select * from coll where x <= 10
- coll.find({}, {y:true}) // select y from coll
一些SQL不能做的,MongoDB也可以做:
- coll.find({"address.city":"gz"}) // 搜索嵌套文档address中city值为gz的记录
- coll.find({likes:"math"}) // 搜索数组
- coll.ensureIndex({"address.city":1}) // 在嵌套文档的字段上建索引
索引:
- coll.ensureIndex({productid:1}) // 在productid上建立普通索引
- coll.ensureIndex({district:1, plate:1}) // 多字段索引
- coll.ensureIndex({productid:1}, {unique:true}) // 唯一索引
- coll.ensureIndex({productid:1}, {unique:true, dropDups:true|) // 建索引时,如果遇到索引字段值已经出现过的情况,则删除重复记录
- coll.getIndexes() // 查看索引
- coll.dropIndex({productid:1}) // 删除单个索引
安全与认证(该版本的MongoDB仅支持很基本的安全策略):
- use shine // 如果要root权限,就用admin库
- db.addUser("username", "password") // 普通权限,可读写
- db.addUser("username", "password", true) // 只可读,不可写
- db.system.users.remove({user: username}) // 删除用户
数据导出、导入:
- // json或csv格式,每次一个collection
- mongoexport -d producttrade -c basic -o /home/data/mongo_backup/producttrade_100504.json
- mongoimport -d producttrade -c basic --drop /home/data/mongo_backup/producttrade_100504.json
- // 二进制数据格式,常用于备份、还原
- mongodump -d shine -o /home/data/mongo_backup
- mongorestore -d shine --drop /home/data/mongo_backup/shine
MongoDB in Java
到这里下一个MongoDB的Java驱动,把jar包扔到项目里去就行了。上面提到的通过脚本操作的功能,基本上都能在Java中找到实现。进行数据库连接的代码也十分简洁:
- Mongo mongo = new Mongo();
- db = mongo.getDB("shine");
- coll = db.getCollection("producttrade");
- DBCursor cur = coll.find();
- // 对cur进行操作。。。