在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新浪博客
下面主要是在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新浪博客
相关文章推荐
- Mongodb索引实战
- MongoDB管理:慎用local、admin数据库
- mongodb的安装简述
- mongodb的write concern
- mongodb查看数据库和表的信息
- Windows安装及运行mongodb
- Centos安装mongodb
- node.js学习笔记(7)--Node.js与MongoDB简单交互
- log4j集成mongodb
- MongoDB2
- MongoDB
- MongoDB使用小结:一些常用操作分享
- Centos搭建MongoDB环境
- MongoDB学习入门相关资料索引
- node.js学习笔记(6)--MongoDB简单入门
- 初学MongoDB
- MongoDB权限认证
- MongoDB sharding cluster Step by Step
- mongodb增删改查
- centos 上安装 mongodb3.2