您的位置:首页 > 数据库 > Mongodb

在Windows环境下MongoDB搭建和简单操作

2016-03-31 16:07 543 查看
更多总结内容参考:怎么样MongoDB搭建Java环境-总结

下面主要是在Windows上(WinXP)安装、运行、安装Windows服务的笔记,以作备忘。

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 –dbpathD:/MongoDB/data

SunOct2415: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.5

SunOct2415:07:05gitversion:cee2d0d6816a704126c283401db24c949d5f52a3

SunOct2415:07:05sysinfo:windows(5,1,2600,2,'ServicePack3')BOOST_LIB_VERSION=1_35

SunOct2415:07:05[initandlisten]waitingforconnectionsonport27017

SunOct2415:07:05[websvr]webadmininterfacelisteningonport28017

由于是开发版,上面就有个警告,没关系,忽略它。(data目录自己手动创建)

最后两行说明的数据库端口和Web端口,分别是27017和28017,在浏览器中打开http://localhost:28017,可以看到其相关的一些信息。

4、安装Windows服务

每次运行mongod –dbpathD:/MongoDB/data命令行来启动MongoDB实在是不方便,就像我免安装的MySQL一样,我想把它作为Windows服务,这样就方便多了。

D:\MongoDB\bin>mongod --logpathD:\MongoDB\logs\MongoDB.log --logappend --dbpath D:\MongoDB\data--directoryperdb --serviceName MongoDB --install

alloutputgoingto:D:\MongoDB\logs\MongoDB.log

CreatingserviceMongoDB.

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:netstart MongoDB

停止MongoDB:netstop 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:

Setcolls =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 = newBasicDBObject();

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 = newBasicDBObject();

query.put("i", 98); //查i的值为98的所有对象

cur = coll.find(query);

while(cur.hasNext()) {

System.out.println(cur.next());

}

8,解析json格式的字符串

利用自带的json解析类JSON:

Objecto = JSON.parse("{ "name" : "MongoDB", "type" :"database","count" : 1, "info" :"sdfsdf"}");

BasicDBObject oo = (BasicDBObject)o;

System.out.println(oo.get("name"));

注意,如果是嵌套式的json,则要分开parse。

更多总结内容参考:怎么样MongoDB搭建Java环境-总结

欢迎访问Wu2198新浪博客
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: