mongdb java api_java 使用最新api操作mongodb

//

package com.auto.test.dbmodel;

import java.util.ArrayList;

import org.bson.Document;

import org.bson.conversions.Bson;

import com.mongodb.MongoClient;

import com.mongodb.client.FindIterable;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoDatabase;

/**

* 类说明

*

* @author luozt

* @date 2016年9月19日 新建

*/

public class DBConnUtil {

public String ip;

public int port;

public String dbname;

MongoClient mongoClient;

MongoDatabase db;

FindIterable cursor=null;

long update_count=0;

long delete_count=0;

public DBConnUtil(String ip,int port,String dbname){

this.ip=ip;

this.port=port;

this.dbname=dbname;

}

public MongoDatabase conn()

{

mongoClient = new MongoClient(ip , port );

db = mongoClient.getDatabase(dbname);

return db;

}

/**query data from database

*

* @param collection_name

* @param document 为查询条件

* @param document_projection为只返回需要的字段

* @return

* crud method please see http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/

*/

@SuppressWarnings(“unchecked”)

public FindIterable queryData(String collection_name,Bson document,int flag){

//collection_name为要查询的collection名字

MongoCollection coll = db.getCollection(collection_name);

if(flag==0){

//0 代表查询所有

cursor=coll.find(document);

}

else if(flag==1){

//1 代表只查询一条数据

cursor=(FindIterable) coll.find(document).first();

}

else if(flag==2){

//2 代表没有查询条件

cursor=coll.find();

}

return cursor;

}

@SuppressWarnings(“unchecked”)

public FindIterable queryData(String collection_name,Bson document,Bson document_projection,int flag){

MongoCollection coll = db.getCollection(collection_name);

if(flag==0){

//0 代表查询所有

cursor=coll.find(document).projection(document_projection);

}

else if(flag==1){

//1 代表只查询一条数据

cursor=(FindIterable) coll.find(document).projection(document_projection).first();

}

else if(flag==2){

//2 代表没有查询条件

cursor=coll.find().projection(document_projection);

}

return cursor;

}

/**insert data to database;

*

* crud method please see http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/

*/

public void insertData(String collection_name,ArrayList documents){

MongoCollection coll = db.getCollection(collection_name);

coll.insertMany(documents);

}

/**

*

* update data to database

*

* filter 通过此filter过滤需要更新的数据

* update 需要更新的内容

*

*

*

* crud method please see http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/

*/

public long updateData(String collection_name,Bson filter,Bson update,int flag){

MongoCollection coll = db.getCollection(collection_name);

if(flag==0){

update_count=coll.updateMany(filter, update).getModifiedCount();

// return update_count;

}

else if(flag==1){

update_count=coll.updateOne(filter, update).getModifiedCount();

// return update_count;

}

return update_count;

}

/**

*

* remove data from database

*

* filter 通过此filter去过滤需要删除的数据

* crud method please see http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/

*/

public long deleteData(String collection_name,Bson filter,int flag){

MongoCollection coll = db.getCollection(collection_name);

if(flag==0){

delete_count=coll.deleteMany(filter).getDeletedCount();

// return delete_count;

}

else if(flag==1){

delete_count=coll.deleteOne(filter).getDeletedCount();

// return delete_count;

}

return delete_count;

}

}

//dbunit

package com.auto.test.testcase;

import java.util.ArrayList;

import org.bson.Document;

import com.auto.test.basedata.DBConfig;

import com.auto.test.dbmodel.DBConnUtil;

import com.mongodb.Block;

import com.mongodb.client.FindIterable;

/**

* 类说明

*

* @author luozt

* @date 2016年9月19日 新建

*/

public class dbUnit_test implements DBConfig{

String collection_name=”test_api”;

public static void main(String[] args) {

// TODO Auto-generated method stub

dbUnit_test test=new dbUnit_test();

}

public dbUnit_test(){

DBConnUtil dbhelp=new DBConnUtil(mongo_ip,mongo_port,mongo_dbname);

dbhelp.conn();

/**

* insert

* if database or collection not exist ,it will be created by Automatic

*/

ArrayList documents=new ArrayList();

Document document=new Document(“name”,”mongodb2″)

.append(“type”, “database2”)

.append(“count”, “112”)

.append(“info”, new Document(“x”,2032).append(“y”, 1022));

documents.add(document);

dbhelp.insertData(collection_name, documents);

/**

* query

*

*/

Document query_document=new Document(“info.x”,new Document(“$gt”,300));

Document fiter_document=new Document(“name”,1).append(“count”, 1);

FindIterable iterable=dbhelp.queryData(collection_name, query_document, fiter_document, 0);

iterable.forEach(new Block() {

@Override

public void apply(final Document document) {

System.out.println(document);

}

});

/**

* update

*

*/

Document update_document=new Document(“name”,”mongodb2″);

Document update_option=new Document(“$set”,new Document(“info.y”,2000));

long update_count=dbhelp.updateData(collection_name, update_document, update_option, 0);

System.out.println(update_count);

/**

*

* delete

*

*

*/

Document delete_document=new Document(“type”,”database3″);

long delete_count=dbhelp.deleteData(collection_name, delete_document, 0);

System.out.println(“delete count is “+delete_count+””);

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值