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

更多总结内容参考:怎么样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新浪博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值