封装MongoDBUtils相关的增删改查

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");
    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值