一、mingoDB 数据库系统的安装和管理:
1,下载:http://downloads.mongodb.org/win32/mongodb-win32-i386-1.4.0.zip
2,解压 mongodb-win32-i386-1.4.0.zip 到 D:/MongoDB/mongodbwin321.6.0/,再在其中建立文件夹 data 存放测试数据库用。
3,手工启动 mingoDB Server:
打开一个 DOS 窗口,进入 D:/MongoDB/mongodbwin321.6.0/bin 目录,运行命令:
D:/MongoDB/mongodbwin321.6.0/bin>mongod --dbpath D:/MongoDB/mongodbwin321.6.0/data
不要关闭该 DOS 窗口。
mongoDB 服务端的默认连接端口是 27017。
4,mongoDB 服务端启动后,重新打开一个 DOS 窗口,进入D:/MongoDB/mongodbwin321.6.0/bin 目录,运行命令 mongo.exe,将会出现下面的信息:
D:/MongoDB/mongodbwin321.6.0/bin>mongo
MongoDB shell version: 1.4.0
url: test
connecting to: test
type "exit" to exit
type "help" for help
>
mongo.exe 是官方自带的一个命令行管理客户端,在这里可以进行数据库管理和数据库系统的维护。
5,运行:
>help 是帮助命令
> show dbs;显示所有数据库显示了 mongoDB 预置的几个数据库。
> use test;打开数据库
> show collections;显示collection
> db.test.save({rpg:100});向 collection test 中保存一条信息
> db.test.find() ;检索所有记录
{ "_id" : ObjectId("5c558875dd6f010304531637"), "rpg" : 100}
二. Java Mongodb测试
1. 下载驱动包:mongo-java-dirver
2.
// 获得数据库服务
Mongo m = null;
try {
m = new Mongo("localhost", 27017);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
// 得到数据库mytest
DB db = m.getDB("mytest");
DBCollection collection = db.getCollection("test");
BasicDBObject bdo = new BasicDBObject();
bdo.put("key1", "value1");
bdo.put("key2", "value2");
bdo.put("key3", "value3");
bdo.put("key4", "value4");
bdo.put("key5", "value5");
//不会插入重复记录
bdo.put("key1", "value1");
//删除所有的数据
collection.remove(new BasicDBObject());
collection.insert(bdo);
// 得到mytest数据库下所有表名
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s);
}
mongoDB提供了 将数据导出为 json 或者CSV格式的文件的功能
具体见 http://www.mongodb.org/display/DOCS/Import+Export+Tools
其中需要注意的是:
If you want to output CSV, you have to specify the fields in the order you want them.
一个例子如下:
Java代码
1.mongoexport -d dba22 -c foo -f x,y,a,b,c --csv -o ./result.csv
./mongoimport -d foo -c t1 /data/t1.json
-d 标示 数据库
-c 标示 数据表
-f 需要提取的field用逗号分隔
-o 输出路径
echo "/usr/local/server/mongodb/bin/mongod --dbpath=/usr/local/server/mongodb/data –-logpath=/usr/local/server/mongodb/logs –-logappend --auth –-port=27017" >> /etc/rc.local
./bin/mongod --dbpath=/usr/local/server/mongodb/data --logpath=/usr/local/server/mongodb/logs --logappend --port=27017 --fork
package cn.wang.mongodb;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
import cn.wang.mongodb.beans.ImageBean;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoException;
import com.mongodb.util.JSON;
public class MongoDbTest {
public static void main(String[] args) {
// run();
List<ImageBean> images = getImageByType("1");
if (null == images) {
System.out.println("无记录");
} else {
for (ImageBean image : images) {
System.out.println(image);
}
}
// //db.authenticate("opzoon", "123@opzoon.com".toCharArray());
//
// // 查询所有的Database
// for (String name : m.getDatabaseNames()) {
// System.out.println("dbName: " + name);
// }
//
// DBCollection collection = db.getCollection("test");
//
// BasicDBObject bdo = new BasicDBObject();
// bdo.put("key1", "value1");
// bdo.put("key2", "value2");
// bdo.put("key3", "value3");
// bdo.put("key4", "value4");
// bdo.put("key5", "value5");
//
// // 不会插入重复记录
// bdo.put("key1", "value1");
//
// // 删除所有的数据
// collection.remove(new BasicDBObject());
// collection.insert(bdo);
// db.authenticate("opzoon", "opzoon".toCharArray());
// DBCollection collection = db.getCollection("test1");
// BasicDBObject data1 = new BasicDBObject();
// data1.put("key1", "value1");
// data1.put("key2", "value2");
// data1.put("key3", "value3");
// data1.put("key4", "value4");
// data1.put("key5", "value5");
// data1.put("key1", "value1");
//
// BasicDBObject data2 = new BasicDBObject();
// data2.put("key11", "value11");
// data2.put("key21", "value21");
// data2.put("key31", "value31");
// data2.put("key41", "value41");
// data2.put("key51", "value51");
// data2.put("key11", "value11");
//
// //删除所有的数据
// collection.remove(new BasicDBObject());
// collection.insert(data1);
// collection.insert(data2);
//
//
// BasicDBObject data3 = new BasicDBObject();
// data3.put("aaa", "bbb");
// data3.put("ccc", "ddd");
// collection.update(new BasicDBObject().append("key11", "value11"),
// data3);
// DBCursor cursor = db.getCollection("test").find();
// while (cursor.hasNext()) {
// System.out.println(cursor.next());
// }
// 得到mytest数据库下所有表名
// Set<String> colls = db.getCollectionNames();
// for (String s : colls) {
// System.out.println(s);
// }
}
public static void run() {
File imagesFile = new File("D:\\images.txt");
FileReader fr = null;
BufferedReader br = null;
try {
fr = new FileReader(imagesFile);
br = new BufferedReader(fr);
String line;
while (null != (line = br.readLine())) {
insertMong(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (null != br) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
br = null;
}
if (null != fr) {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
fr = null;
}
}
}
private static void insertMong(String line) {
String[] data = line.split(",");
String type = data[0];
String typeCh = data[1];
String theme = data[2];
String themeCh = data[3];
String name = data[4];
String remarks = data[5];
DB db = getMongoDb();
DBCollection collection = db.getCollection("image");
BasicDBObject bdo = new BasicDBObject();
bdo.put("type", type);
bdo.put("typech", typeCh);
bdo.put("theme", theme);
bdo.put("themech", themeCh);
bdo.put("name", name);
bdo.put("remarks", remarks);
// 不会插入重复记录
// bdo.put("key1", "value1");
collection.insert(bdo);
}
private static DB getMongoDb() {
// 获得数据库服务
Mongo m = null;
try {
m = new Mongo("172.16.101.253", 27017);
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (MongoException e) {
e.printStackTrace();
}
// 得到数据库mytest
DB db = m.getDB("images");
return db;
}
public static List<ImageBean> getImageByType(String type) {
List<ImageBean> images = new ArrayList<ImageBean>();
DB db = getMongoDb();
DBCollection coll = db.getCollection("image");
DBObject obj = null;
DBCursor cursor = null;
if (null != type) {
obj = new BasicDBObject();
obj.put("type", type);
cursor = coll.find(obj).limit(6).skip(0);
} else {
cursor = coll.find();
}
// 分页查询
System.out.println(cursor.count());
while (cursor.hasNext()) {
ImageBean image = new ImageBean();
DBObject dbo = cursor.next();
String data = JSON.serialize(dbo);
System.out.println(data);
// 把字符串变成对象
parseData(data, image);
images.add(image);
}
return images.isEmpty() ? null : images;
}
private static void parseData(String data, ImageBean image) {
StringBuffer sb = new StringBuffer(data);
sb.deleteCharAt(0).deleteCharAt(sb.length() - 1);
data = sb.toString();
String[] datas = data.split(",");
String type = datas[1];
String theme = datas[2];
String name = datas[3];
String remarks = datas[4];
image.setType(type);
image.setTheme(theme);
image.setName(name);
image.setRemarks(remarks);
}
}
package cn.wang.mongodb.beans;
import java.io.Serializable;
public class ImageBean implements Serializable{
private static final long serialVersionUID = -1962370938260404035L;
private int id;
private String name;
private String theme;
private String remarks;
private String type;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTheme() {
return theme;
}
public void setTheme(String theme) {
this.theme = theme;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String toString() {
return "type: " + this.type + ", "
+ "theme: " + this.theme + ", "
+ "name: " + this.name + ", "
+ "remarks: " + this.remarks;
}
}