首页 > 数据库技术 > 详细

mongodb安装与使用

时间:2015-06-05 02:07:32      阅读:356      评论:0      收藏:0      [点我收藏+]

一.MongoDB安装和启动,widndows和linux基本相同

1.下载数据库,

????linux:mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz

2.解压文件,并且放置到合适的位置

????tar -vxf?mongodb-linux-x86_64-ubuntu1404-3.0.3.tgz

????mv?mongodb-linux-x86_64-ubuntu1404-3.0.3?/usr/local/mongodb

3.创建必要得文件夹以及文件

????数据库文件夹:/usr/local/mongodb/data/db

????日志文件:/usr/local/mongodb/data/log/mongodb.log

????完了之后记得给文件夹和文件授权,否则服务开不起来.

4.设置数据库位置以及日志位置并且开启服务:

????bin(linux)->./mongod --port 27017 --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/data/log/mongodb.log

????linux下注意文件及和文件读写权限.当然开启服务还有很多参数,不一一列举.

????bin(win)->mongod?--port 27017 ?--dbpath "D:\Program Files\MongoDB\Server\3.0\data\db" --logpath "D:\Program Files\MongoDB\Server\3.0\data\log\MongoDB.log"

5.连接数据库:

??? bin(linux)->./mongo

????bin(win)->mongo.exe

????注意:在windows下创建文件夹以及日志文件不再说明操作过程,很简单.还有一点是在服务启动以后,不要关闭启动服务的界面,也不能Ctrl+C,连接数据库的时候需要新起窗口.当然也可以让服务后台运行.后台运行命令:nohup ./mongod --port 27017 --dbpath /usr/local/mongodb/data/db --logpath /usr/local/mongodb/data/log/mongodb.log &

6.通过图形界面的客户端连接mongodb

????windows下可选得比较多,包括robomongo,mongoVUE等等,linux下可用robomongo.直接去官网上下载然后安装即可.robomongo的优势是可以直接在软件中敲shell命令,并且有提示;mongoVUE的优势是查询截面清晰,不用敲完整的复杂得shell命令.

7.mongodb的其他脚本命令

????备份:mongodump/恢复:mongorestore

????导入数据:mongoimport -d dbName -c collectionName --file filePath;还有其他很多可选参数

????导出数据:mongoexport -d dbName -c collectionName -o filePaht;还有其他很多可选参数

????导入导出数据默认都是json格式的文件,当然为了适应和其他数据库的数据交互,可选择导入导出的文件为CVS文件。

??

二.MongoDB的简单使用

????使用mongoDB进行CRUD操作,就是通过执行响应的shell语句,所以实质上是对shell语句的使用.首先需要了解mongoDB的几种简单对象:db,collection,document.

????db:数据库对象,等同于关系数据库中的数据库对象

????collection:集合对象,等同于关系数据库中的表

????document:文档对象,等同于关系数据库中表中的一行记录

1、对数据库的操作:

>db;//查看当前使用的是那个数据库

>show dbs;//展示所有的数据库

>use dbName;//使用某个数据库,如果数据库不存在,就创建数据库,所以创建数据库也是使用这个命令

>db stats();//查看数据库当前状态信息

>db.dropDatabase();//删除当前的数据库

2、对集合的操作:

>db.createCollection(collectionName,option);//collectionName是集合名称,option是可选参数,包括数据库大小等。

>db.collectionName.drop();//删除集合,其中collectionName是集合的名称

3、对文档的操作:

>db.collectionName.insert(document);//向集合中插入数据,其中document(Json)是一个json对象或者数组

>db.collectionName.find(condition);db.collectionName.findOne();db.collectionName.find().pertty();

//查询记录,其中condition(Json)为过滤条件,如果不添表示所有。pertty()表示输出格式优化,find还有很多详细的处理后面介绍。

>db.collectionName.update(condition,updateDate);//更新记录,其中condition(Json)为过滤条件json格式。updateDate为待更新的数据

//>db.mycol.update({"a":1},{$set:{"b":"B"}});将mycol集合中a字段为1的对象的b字段改为"B"

>db.collectionName.remove(condition,justOne);//删除记录,其中condition(Json)为过滤条件,justOne(boolean)表示是否只删除第一条,如果都不添,表示清空集合

>db.collectionName.find().skip(num).limit(num);//分页查询,其中num(Number)是起始页和每页大小。

>db.collectionName.find(condition,{Key:isHead});//投影,第二个json表示某个字段是否隐藏,isHead(0/1)表示

>db.collectionName.find().sort({Key:upOrDown});//结果排序,key为排序关键字,upOrDown(-1/1)表示升序还是降序

>db.collectionName.ensureIndex({key:upOrDown});//建立索引,key为索引字段,upOrDown(-1/1)表示升序还是降序

>db.collectionName.aggregate(options);//聚集函数,options(JsonArray)有多种可选。

//db.mycol.aggregate([{$group:{field:"$by_field",total:{$sum:1}}}]);//按照by_field字段分组,显示field列和total列

?

三.Java操作MongoDB:

????在java操作mongo的时候,首先需要有jar包支持。如果使用mave,依赖如下:

1
2
3
4
5
6
7
8
9
10
<dependency>
????<groupId>org.springframework.data</groupId>
????<artifactId>spring-data-mongodb</artifactId>
????<version>1.3.0.RELEASE</version>
</dependency>
<dependency>
????<groupId>org.mongodb</groupId>
????<artifactId>mongo-java-driver</artifactId>
????<version>2.11.1</version>
</dependency>

????几个基本java对象的说明如下:

Mongo:数据库连接对象

????Mongo monge = new Mongo("localhost",portl);

DB:数据库对象

????DB db = monge.getDB("dbName");

DBCollection:集合对象

????DBCollection collection = db.getCollection("collectionName");

BasicDBObject:文档对象

????BasicDBObject ?basicDBObject = new BaseDBObject();

DBObject:文档对象的超类

????DBObject dbObject = (DBObject)JSON.parse("json");

DBCursor:操作过程中的游标

????DBCursor cursor = collection.find();

????DBCursor cursor = collection.find("conditionJson");

????具体使用代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
@Test
public?void?testMongo()?throws?UnknownHostException
{
????Mongo mongo =?new?MongoClient("127.0.0.1",?27017);// 数据库连接
????DB db = mongo.getDB("test");// 数据库对象
????DBCollection coll1 = db.getCollection("coll1");// 获取集合对象
????DBCollection coll2 = db.createCollection("coll2",?null);
????Set<String> collSet = db.getCollectionNames();
????DBObject doc1 =?new?BasicDBObject("a",?1);// 数据库文档对象
????doc1.put("b",?"B");
????DBObject doc2 = (DBObject) JSON.parse("{\"a\":2,\"b\":\"B\"}");
?
????// 插入数据
????coll1.insert(doc1, doc2);
?
????// 修改数据
????DBObject update = (DBObject) JSON.parse("{\"a\":2,\"b\":\"updateB\"}");
????coll1.update(new?BasicDBObject("a",?2), update,?true,?false);
????Map<String, Object> map =?new?HashMap<String, Object>();
????map.put("c",?"updateC");
????map.put("d",?4);
????coll1.update(new?BasicDBObject("a",?1),?new?BasicDBObject(map));
?
????// 查询文档对象
????DBObject ref = (DBObject) JSON.parse("{\"b\":\"updateB\"}");
????DBCursor cursor = coll1.find(ref);
????while?(cursor.hasNext())
????{
????????DBObject obj = cursor.next();
????????int?valuea = (Integer) obj.get("a");
????????String valueb = (String) obj.get("b");
????????System.out.println(valuea +?"-"?+ valueb);
????????System.out.println(obj);
????}
?
????// 删除数据
????coll1.remove(new?BasicDBObject("a",?1));
????coll1.drop();// 清空数据
}

?

?

?

?

?

?

mongodb安装与使用

原文:http://dyygusi.iteye.com/blog/2217111

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!