JAVA 之mongodb 增删改查
1. 准备
(1) 了解mongodb及其常用语言
可以根据这个网站学习和了解下mongodb的日常操作语句
http://www.w3cschool.cc/mongodb/mongodb-tutorial.html
(2)下载mongo-java-driver JAR包
http://central.maven.org/maven2/org/mongodb/mongo-java-driver/
3.0.0-rc0/
2. 添加jar包至工程目录下
(1)首先在工程文件夹下新建一个名字为jar(名称随意)的文件夹,然后复制刚才第一步下载的jar包至该文件夹下。
(2)添加对这个jar包的引用
右击工程—选择Properies
然后如图添加对jar的 引用
3. db_mongodb类源代码,代码有注释和示例。
import java.util.Arrays;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.WriteConcern;
public classdb_mongodb {
MongoClientmongoClient= null;
DBdb = null;
/***
* 初始化数据库连接
*
* @host mongodb IP
* @port int 端口号
* @user mongodb用户名,如果没有赋值给null
* @password mongodb密码,如果没有复制null
* @database连接的数据库
*
*
***/
public db_mongodb(String host,intport, String user, String password,
Stringdatabase) {
// TODO Auto-generated constructor stub
if (host == null || port == 0 ||database == null){
System.out
.println("please check user or port or database isinserted");
}
if (user == null && password == null) {
mongoClient = new MongoClient(host,port);
}else{
ServerAddressserverAddress = newServerAddress(host, port);
char[] passwordArray =password.toCharArray();
MongoCredentialcredential = MongoCredential
.createMongoCRCredential(user,database, passwordArray);
mongoClient = newMongoClient(serverAddress,
Arrays.asList(credential));
}
mongoClient.setWriteConcern(WriteConcern.JOURNALED);
db = mongoClient.getDB(database);
}
/***
* 插入操作
*
* @colletion待操作表名
* @doc待插入数据
*
***/
public void db_insert(Stringcollection, BasicDBObject doc) {
DBCollectioncoll = db.getCollection(collection);
coll.insert(doc);
}
/***
* 查询所有操作
*
* @colletion待操作表名
* @doc待查询数据如果为null查询第一条
***/
public DBObjectdb_findOne(String collection, BasicDBObject doc) {
DBCollectioncoll = db.getCollection(collection);
if (doc == null) {
return coll.findOne();
}else{
return coll.findOne(doc);
}
}
/***
*
* 查询所有操作
*
* @colletion待操作表名
* @doc待查询数据如果为null查询所有
*
***/
public DBCursordb_findAll(String collection, BasicDBObject doc) {
DBCollectioncoll = db.getCollection(collection);
if (doc == null) {
return coll.find();
}else{
return coll.find(doc);
}
}
/*****
* 更新操作
*
* @colletion待操作表名
* @querydoc更新条件
* @updatedoc更新数据
* @multi true:更新所有,false:更新第一条
*
*
****/
public void db_update(Stringcollection, BasicDBObject querydoc,
BasicDBObjectupdatedoc, booleanmulti) {
DBCollectioncoll = db.getCollection(collection);
if (multi == false) {
coll.update(querydoc,updatedoc);
}else{
coll.updateMulti(querydoc,updatedoc);
}
}
/*****
* 删除操作
*
* @colletion待操作表名
* @querydoc待删除数据
*
****/
public void db_remove(Stringcollection, BasicDBObject querydoc) {
DBCollectioncoll = db.getCollection(collection);
coll.remove(querydoc);
}
/*****
* 更改目前的连接数据库为@newdatabase
*
****/
public void change_database(Stringnewdatabase) {
db = mongoClient.getDB(newdatabase);
}
/*****
* 删除操作
*
* @colletion待操作表名
* @doc待统计的doc
*
****/
public long db_count(Stringcollection, BasicDBObject doc) {
DBCollectioncoll = db.getCollection(collection);
if (doc == null) {
return coll.getCount();
}
else {
return coll.getCount(doc);
}
}
public DBObjectdb_group_by(String collection, BasicDBObject key,
BasicDBObjectcond) {
BasicDBObjectinitial = newBasicDBObject("count",0);
Stringreduce = "function(obj,prev){prev.count++;}";
DBCollectioncoll = db.getCollection(collection);
DBObjectresultDbObject = coll.group(key, cond, initial, reduce);
return resultDbObject;
}
public Iterable<String>get_collectionnames() {
Iterable<String>abcString = db.getCollectionNames();
return abcString;
}
public void show(DBCursor cursor) {
try {
while (cursor.hasNext()) {
DBObjecttemp = cursor.next();
System.out.println(temp);
}
}catch(Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally{
cursor.close();
}
}
public static void main(String[] args) {
Stringhost = "10.0.0.191";
int port = 27017;
Stringdatabase = "crawl_data";
db_mongodboDb_mongodb = newdb_mongodb(host, port, null, null,
database);
BasicDBObjectdoc = newBasicDBObject("name","MogoDB")
.append("type", "database").append("count",1)
.append("info", new BasicDBObject("x", 203).append("y", 102));
// test insert
// oDb_mongodb.db_insert(collection, doc);
// DBObject dbObject = oDb_mongodb.db_findOne(collection,doc);
// System.out.println(dbObject);
Stringcollection = "testCollection";
// for (int i = 0; i < 100; i++) {
// oDb_mongodb.db_insert(collection, newBasicDBObject("i", i));
// }
System.out.println(oDb_mongodb.db_count(collection,null));
// test update
BasicDBObjectquerydoc = newBasicDBObject("i",9);
BasicDBObjectupdatedoc = newBasicDBObject("$set",newBasicDBObject(
"name", "rong").append("age", 100));
oDb_mongodb.db_update(collection,querydoc, updatedoc, false);
// test query
BasicDBObjectqueryBasicDBObject = new BasicDBObject("i",
new BasicDBObject("$lt", 20));
DBCursorcursor = oDb_mongodb
.db_findAll(collection,queryBasicDBObject);
oDb_mongodb.show(cursor);
// test remove
BasicDBObjectremovedoc = newBasicDBObject("i",13);
oDb_mongodb.db_remove(collection,removedoc);
}
}
详细可参见mongodb的官方文档
http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/