UserBean.java
public class UserBean {
String name;
String age;
String descrtption;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getDescrtption() {
return descrtption;
}
public void setDescrtption(String descrtption) {
this.descrtption = descrtption;
}
}
UserBeanToDocument.java
import org.bson.Document;
public class UserBeanToDocument {
public static Document toDocument(UserBean userBean){
Document document = new Document();
document.put("name",userBean.getName());
document.put("age",userBean.getAge());
document.put("description",userBean.getDescrtption());
return document;
}
}
MongoDBUtils.java
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import org.bson.Document;
import org.bson.types.ObjectId;
public class MongoDBUtils {
//连接数据库,并获取集合
public static MongoCollection<Document> getCol(String dbName,String colName){
//连接到MongoDB服务
MongoClient mongoClient = new MongoClient("localhost",27017);
//连接到数据库
MongoDatabase mongoDatabase = mongoClient.getDatabase(dbName);
//获取集合
MongoCollection<Document> collection = mongoDatabase.getCollection(colName);
return collection;
}
//添加数据(单条)
public static void insertOne(String dbName,String colName,Document document){
//获取集合
MongoCollection<Document> collection = getCol(dbName, colName);
//添加数据
collection.insertOne(document);
}
//修改数据(单条)——replaceOne
public static void replaceOneById(String dbName,String colName,String id,Document document){
//获取集合
MongoCollection<Document> collection = getCol(dbName, colName);
//设置条件
BasicDBObject filter = new BasicDBObject();
filter.append("_id",new ObjectId(id));
collection.replaceOne(filter,document);
}
//修改数据(单条)——updateOne
public static void updateOneById(String dbName,String colName,String id,Document document){
//获取集合
MongoCollection<Document> collection = getCol(dbName, colName);
//设置条件
BasicDBObject filter = new BasicDBObject();
filter.append("_id",new ObjectId(id));
collection.updateOne(filter,document);
}
//查询集合中的所有文档
public static FindIterable<Document> findAll(String dbName,String colName){
//获取集合
MongoCollection<Document> collection = getCol(dbName, colName);
FindIterable<Document> documents = collection.find();
return documents;
}
//根据条件查询文档
public static FindIterable<Document> findByWhere(String dbName,String colName,BasicDBObject filter){
//获取集合
MongoCollection<Document> collection = getCol(dbName, colName);
FindIterable<Document> documents = collection.find(filter);
return documents;
}
//根据id进行删除
public static void deleteById(String dbName,String colName,String id){
//获取集合
MongoCollection<Document> collection = getCol(dbName, colName);
BasicDBObject filter = new BasicDBObject();
filter.append("_id",new ObjectId(id));
collection.deleteOne(filter);
}
}
TestMongoDB.java
import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCursor;
import org.bson.BasicBSONObject;
import org.bson.Document;
import org.junit.Test;
public class TestMongoDB {
//插入一条数据
@Test
public void insertOne(){
UserBean userBean = new UserBean();
userBean.setName("hdn");
userBean.setAge("22");
userBean.setDescrtption("我正在学习MongoDB....");
Document document = UserBeanToDocument.toDocument(userBean);
MongoDBUtils.insertOne("test","learn",document);
}
//修改一条数据——replaceOne()
@Test
public void replaceOneById(){
UserBean userBean = new UserBean();
userBean.setName("hedanning");
userBean.setAge("22");
userBean.setDescrtption("我正在学习MongoDB....");
Document document = UserBeanToDocument.toDocument(userBean);
MongoDBUtils.replaceOneById("test","learn","5d5a58cdef0ab137048f9667",document);
}
//修改一条数据——updateOne()
@Test
public void updateOneById(){
UserBean userBean = new UserBean();
userBean.setName("hedanning");
userBean.setAge("23");
userBean.setDescrtption("我正在学习MongoDB....");
Document document = new Document();
document.put("$set",UserBeanToDocument.toDocument(userBean));
MongoDBUtils.updateOneById("test","learn","5d5a58cdef0ab137048f9667",document);
}
//查询所有数据
@Test
public void findAll(){
FindIterable<Document> documents = MongoDBUtils.findAll("test", "learn");
MongoCursor<Document> iterator = documents.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
//查询 200<likes<240
@Test
public void findByWhere_1(){
BasicDBList conList = new BasicDBList();
BasicDBObject filter = new BasicDBObject();
//[{"likes",{"$gt",200}}]}
conList.add(new BasicBSONObject("likes",new BasicDBObject("$gt",200)));
//[{"likes",{"$gt",200}},{“likes”:{“$lt”:240}}]}
conList.add(new BasicBSONObject("likes",new BasicDBObject("$lt",240)));
//{"$and",[{"likes",{"$gt",200}},{“likes”:{“$lt”:240}}]}
filter.append("$and",conList);
FindIterable<Document> documents = MongoDBUtils.findByWhere("test", "learn",filter);
MongoCursor<Document> iterator = documents.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
//查询 likes=200 or likes=240
@Test
public void findByWhere_2(){
BasicDBList conList = new BasicDBList();
BasicDBObject filter = new BasicDBObject();
//[{"likes":200}]
conList.add(new BasicBSONObject("likes",200));
//[{"likes":200},{"likes":240}]
conList.add(new BasicBSONObject("likes",240));
//{"$or",[{"likes":200},{"likes":240}]}
filter.append("$or",conList);
FindIterable<Document> documents = MongoDBUtils.findByWhere("test", "learn",filter);
MongoCursor<Document> iterator = documents.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
//查询 likes<200 or likes>220
@Test
public void findByWhere_3(){
BasicDBList conList = new BasicDBList();
BasicDBObject filter = new BasicDBObject();
//[{"likes":{"$lt",200}}]
conList.add(new BasicBSONObject("likes",new BasicBSONObject("$lt",200)));
//[{"likes":{"$lt",200}},{"likes":{"$gt",220}}]
conList.add(new BasicBSONObject("likes",new BasicBSONObject("$gt",220)));
//{"$or",[{"likes":200},{"likes":240}]}
filter.append("$or",conList);
FindIterable<Document> documents = MongoDBUtils.findByWhere("test", "learn",filter);
MongoCursor<Document> iterator = documents.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
//查询likes=150 or (200<likes<240)
@Test
public void findByWhere_4(){
BasicDBList conListAnd = new BasicDBList();
BasicDBList conListOr = new BasicDBList();
BasicDBObject filterAnd = new BasicDBObject();
BasicDBObject filterOr = new BasicDBObject();
BasicDBObject filter = new BasicDBObject();
//组合了200<likes<240 {$and:[{"likes",{"$gt":200}},{"likes",{"$lt":240}}]}
conListAnd.add(new BasicBSONObject("likes",new BasicDBObject("$gt",200)));
conListAnd.add(new BasicBSONObject("likes",new BasicDBObject("$lt",240)));
filterAnd.append("$and",conListAnd);
//{"likes":150}
filterOr.append("likes",150);
//[{$and:[{"likes",{"$gt":200}},{"likes",{"$lt":240}}]},{"likes":150}]
conListOr.add(filterOr);
conListOr.add(filterAnd);
//{"$or",[{$and:[{"likes",{"$gt":200}},{"likes",{"$lt":240}}]},{"likes":150}]}
filter.append("$or",conListOr);
FindIterable<Document> documents = MongoDBUtils.findByWhere("test", "learn",filter);
MongoCursor<Document> iterator = documents.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
//likes in(200,240)
@Test
public void findByWhere_5(){
BasicDBList conList = new BasicDBList();
BasicDBObject filter = new BasicDBObject();
conList.add(200);
conList.add(240);
filter.append("likes",new BasicDBObject("$in",conList));
FindIterable<Document> documents = MongoDBUtils.findByWhere("test", "learn",filter);
MongoCursor<Document> iterator = documents.iterator();
while(iterator.hasNext()){
System.out.println(iterator.next());
}
}
//根据id删除数据
@Test
public void deleteById(){
MongoDBUtils.deleteById("test", "learn","5d561e27494e3bf000805bde");
}
}