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<Document> 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<Document> queryData(String collection_name,Bson document,int flag){
//collection_name为要查询的collection名字
MongoCollection<Document> coll = db.getCollection(collection_name);
if(flag==0){
//0 代表查询所有
cursor=coll.find(document);
}
else if(flag==1){
//1 代表只查询一条数据
cursor=(FindIterable<Document>) coll.find(document).first();
}
else if(flag==2){
//2 代表没有查询条件
cursor=coll.find();
}
return cursor;
}
@SuppressWarnings("unchecked")
public FindIterable<Document> queryData(String collection_name,Bson document,Bson document_projection,int flag){
MongoCollection<Document> coll = db.getCollection(collection_name);
if(flag==0){
//0 代表查询所有
cursor=coll.find(document).projection(document_projection);
}
else if(flag==1){
//1 代表只查询一条数据
cursor=(FindIterable<Document>) 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<Document> documents){
MongoCollection<Document> 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<Document> 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<Document> 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<Document> documents=new ArrayList<Document>();
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<Document> iterable=dbhelp.queryData(collection_name, query_document, fiter_document, 0);
iterable.forEach(new Block<Document>() {
@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+"");
}
}
java 使用最新api操作mongodb的更多相关文章
- Java API 操作 Mongodb
本次测试环境使用一台ip为 192.168.2.23 的虚拟机 一.依赖 <dependency> <groupId>org.mongodb</groupId> & ...
- Java代码通过API操作HBase的最佳实践
HBase提供了丰富的API.这使得用Java连接HBase非常方便. 有时候大家会使用HTable table=new HTable(config,tablename);的方式来实例化一个HTabl ...
- MongoDB学习(五)使用Java驱动程序3.3操作MongoDB快速入门
[引言] 毕竟现在MongoDB还是出于成长阶段,所以现在网上相关的资料很少,而且大部分还都是针对于MongoDB的老版本的.再加上MongoDB的频繁升级.重大更新等等,导致菜鸟学习的难度增大. 好 ...
- Java 封装 HDFS API 操作
代码下载地址:点击下载 一:环境介绍 hadoop:2.6 Ubuntu:15.10 eclipse:3.8.1 二:操作包含 推断某个目录是否存在 isExist(fold ...
- java操作mongodb & springboot整合mongodb
简单的研究原生API操作MongoDB以及封装的工具类操作,最后也会研究整合spring之后作为dao层的完整的操作. 1.原生的API操作 pom.xml <!-- https://mvnre ...
- MongoDB Java API操作很全的整理
MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写,一般生产上建议以共享分片的形式来部署. 但是MongoDB官方也提供了其它语言的客户端操作API.如下图所示: 提供了C.C++ ...
- 学习MongoDB--(11):应用举例(利用java操作MongoDB)
原文地址:http://blog.csdn.net/drifterj/article/details/7948090 目录地址:http://blog.csdn.net/DrifterJ/articl ...
- Mongodb快速入门之使用Java操作Mongodb
[IT168 专稿]在上一篇文章中,我们学习了Mongodb的安装和初步使用,在本文中,将学习如何使用Java去编程实现对Mongodb的操作. HelloWorld程序 学习任何程序的第一步,都是编 ...
- springboot 学习之路 14(整合mongodb的Api操作)
springboot整合mongodb: mongodb的安装和权限配置 请点击连接参考 mongodb集成 : 第一步:引如pom文件 第二步:配置文件配置mongodb路径: 第三步:关于mon ...
随机推荐
- javascript;json数据,js转换日期方法。
接收json数据,日期格式为:"\/Date(1414078309687)\/" var value = "/Date(1414078309687)/"; va ...
- 【HackerRank】 Chocolate Feast
Little Bob loves chocolates, and goes to the store with $N money in his pocket. The price of each ch ...
- Class文件结构(更新中)
Class文件是一组以8位字节为单位的二进制流,当遇见需要占用8位字节以上空间的数据项时,则会按照高位在前的方式分割成若干个8位字节进行存储. 格式,采用伪结构,只有两种数据结构:无符号数和表. 无符 ...
- 线性代数:Ax=b的解
n列的矩阵A,当且仅当向量b是列空间C(A)的一个向量时,Ax=b有解. C(A)的零空间是N(A),N(A)正交补是A的行空间C(T(A)), 依据上一章的结论,任何Rn向量可以表示为r+n,其中n ...
- iOS_XML与JSON解析
XML与JSON简介 XML 可扩展标记语言 用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言 易读性高,编码手写难度小,数据量 ...
- 和BEM的战斗:10个常见问题及如何避免
原文链接: https://segmentfault.com/a/1190000006135647 无论你是刚刚发现BEM或者已经是个中熟手(作为web术语来说),你可能已经意识到它是一种有用的方法. ...
- HDFS文件访问权限
HDFS中的文件访问权限 针对文件和目录,HDFS的权限模式与POSIX非常相似一共提供三类权限模式:只读权限(r).写入权限(w)和可执行权限(x).读取文件或列出目录内容时需要只读权限.写入一个文 ...
- 让外界可以访问电脑上的网站的几种方式——花生壳,域名,IIS(待)
前话: 每次“养大“一个网站,都有种骄傲地想秀给朋友们看的冲动. 之前可能是困于电脑,实在不方便. 现在,不用克制了! 该秀就秀,能装逼就装逼. 养大孩子就该拉出来秀秀,见见世面. 正题:这次实习,我 ...
- 逆向破解学习二之<TraceMe>
这次在破解TraceMe的时候,我有看过别人的视频.但是我并没有按照别人思路走,而是完全安全自己的思路试了一次.结果破解成功.新手学破解,如果有不对的地方,还请指出来. 004013A0 crackm ...
- JAVA学习前十天:小结、面向对象之”扑克牌“例子
2016年4月26号正式步入JAVA学习课堂,学习了第一节JAVA课程,由于以前有C语言基础,所以课程有点快! 第一天:学习了教材的第一部分,第一部分总共两章,分别是JAVA简介和JAVA基础语法. ...