1、下载
下载地址:http://www.mongodb.org/downloads
从其下载页面就可以看出MongoDB还真的是不赖,支持各个操作系统,其驱动也有好多,其中就有我喜欢的Java和Python驱动,看样子我真的应该学习下了。
我下载的是Windows321.7.1版本的【http://fastdl.mongodb.org/win32/mongodb-win32-i386-1.7.1.zip】(注意:该版本数据最大只能2GB,不过对于学习来说,已经足够了)
2、安装
安装非常简单,解压就行了,我解压后,放在D:/MongoDB目录下。
为了命令行的方便,我把D:/MongoDB/bin加到系统环境变量的path中了。
3、运行
D:\>mongod –dbpath D:/MongoDB/dataSunOct2415:07:05MongoDBstarting:pid=2472port=27017dbpath=D:/MongoDB/data32-bit
**NOTE:Thisisadevelopmentversion(1.7.1)ofMongoDB.**Notrecommendedforproduction.
**NOTE:whenusingMongoDB32bit,youarelimitedtoabout2gigabytesofdata
**seehttp://blog.mongodb.org/post/137788967/32-bit-limitations
SunOct2415:07:05dbversionv1.7.1,pdfileversion4.5SunOct2415:07:05gitversion:cee2d0d6816a704126c283401db24c949d5f52a3SunOct2415:07:05sysinfo:windows(5,1,2600,2,'ServicePack3')BOOST_LIB_VERSION=1_35SunOct2415:07:05[initandlisten]waitingforconnectionsonport27017SunOct2415:07:05[websvr]webadmininterfacelisteningonport28017
(注:由于是开发版,上面就有个警告。可以忽略。data目录自己手动创建)
最后两行说明的数据库端口和Web端口,分别是27017和28017,在浏览器中打开http://localhost:28017,可以看到其相关的一些信息。
4、安装Windows服务
每次运行mongod –dbpath D:/MongoDB/data命令行来启动MongoDB实在是不方便,就像我免安装版本的MySQL一样,我想把它作为Windows服务,这样就方便多了。
D:\MongoDB\bin>mongod --logpath D:\MongoDB\logs\MongoDB.log --logappend --dbpath D:\MongoDB\data --directoryperdb --serviceName MongoDB --install
alloutputgoingto:D:\MongoDB\logs\MongoDB.logCreatingserviceMongoDB.Servicecreationsuccessful.Servicecanbestartedfromthecommandlinevia'netstart"MongoDB"'.
注意:这条命令要到MongoDB的bin目录下运行,刚开始的时候,我就直接在D:\下运行,结果服务的可执行目录为【"D:\mongod"--logpath"D:\MongoDB\logs\MongoDB.log"--logappend--dbpath"D:\MongoDB\data"--directoryperdb--service】,肯定是不对的。
该命令行指定了日志文件:D:\MongoDB\logs\MongoDB.log,日志是以追加的方式输出的;
数据文件目录:D:\MongoDB\data,并且参数--directoryperdb说明每个DB都会新建一个目录;
Windows服务的名称:MongoDB;
以上的三个参数都是可以根据自己的情况而定的,呵呵。
最后是安装参数:--install,与之相对的是--remove
启动MongoDB:net start MongoDB
停止MongoDB:net stop MongoDB
是不是很方便了!
以上是我的安装MongoDB的初体验,希望能与各位朋友一起学习MongoDB!
===========================================
JAVA 操作 MongoDB
1,必须下载一个MongoDB的java驱动,并在工程classpath加入该jar包,地址:https://github.com/mongodb/mongo-java-driver/downloads
2,建立连接
建立连接之前要确保mongodb的服务是打开的。下面简述window下手动打开mongodb服务的方法:下载mongodb文件后解压,例如解压至D:\mongodb下,同时在这个文件夹下新建一个data文件夹,当作数据库数据的存放地。命令行定位到D:\\mongodb\\bin下输入:>mongod --dbpath=D:\mongodb\data,当看到27801端口被监听到即完成启动。
与mongodb建立连接,至少你得有一个被连接的数据库名。但该数据库不一定必须存在,如果没有会自动创建。
此外,你可以指明服务器地址和端口。建立连接的三种方式如下:
Mongo m = new Mongo();Mongo m = new Mongo( "localhost" );Mongo m = new Mongo( "localhost" , 27017 );
DB db = m.getDB( "mydb" );
注意1:m这个Mongo对象的实例实际上提供了连接数据库的线程池,多数情况下只需要一个对象即可。注意2:对于需要密码接入,可进行如下判断:
boolean auth = db.authenticate(myUserName, myPassword);
3,获取所有Collection
在MongoDB里数据层次是这样的: database--collection--很多{key:value}组成的document对应到java里层次是这样的:database--Set--LinkedHashMap
所以可以这样获取到所有的collection:
Set colls = db.getCollectionNames();
for (String s : colls) { System.out.println(s);}
4,获取一个collection
DBCollection coll = db.getCollection("testCollection")获取到collection之后,就可以进行插入、查询数据等操作。
5,插入一个Document
这里的Document即一个json对象,如你所见,一个json对象的元素的value也可以是一个json对象
{ "name" : "MongoDB", "type" : "database", "count" : 1, "info" : { x : 203, y : 102 }}
对应到java程序中来,可以用BasicDBObject类包实现这样一个Document(即json),完成后,调用collection的insert方法插入即可。
BasicDBObject doc = new BasicDBObject();
doc.put("name", "MongoDB"); doc.put("type", "database"); doc.put("count", 1);
BasicDBObject info = new BasicDBObject();
info.put("x", 203); info.put("y", 102);
doc.put("info", info);
coll.insert(doc);
6,使用DBCursor 类获取所有document
DBCursor cur = coll.find();
while(cur.hasNext()) { System.out.println(cur.next()); }
7,带条件的查询
BasicDBObject query = new BasicDBObject();
query.put("i", 98); //查i的值为98的所有对象
cur = coll.find(query);
while(cur.hasNext()) { System.out.println(cur.next()); }
8,解析json格式的字符串
利用自带的json解析类JSON:
Object o = JSON.parse("{ "name" : "MongoDB", "type" : "database","count" : 1, "info" : "sdfsdf"}"); BasicDBObject oo = (BasicDBObject)o; System.out.println(oo.get("name"));
注意,如果是嵌套式的json,则要分开parse。