使用Java-Maven操作MongoDB增删改查

文章目录

    • 1. 环境配置
    • 2. 单元测试
      • 2.1 查询记录
      • 2.2 新增记录
      • 2.3 更新记录
      • 2.4 删除记录

1. 环境配置

pom.xml 依赖

<dependencies>
        
        <dependency>
            <groupId>org.mongodbgroupId>
            <artifactId>mongodb-driverartifactId>
            <version>3.6.3version>
        dependency>
        
        <dependency>
            <groupId>junitgroupId>
            <artifactId>junitartifactId>
            <version>4.10version>
            <scope>testscope>
        dependency>
    dependencies>
    
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.bootgroupId>
                <artifactId>spring-boot-maven-pluginartifactId>
            plugin>
        plugins>
    build>

2. 单元测试

命令行创建数据库

use spitdb

创建集合spit并添加数据

db.spit.insert({_id:"1",content:"996还是007,年轻人该何去何从",userid:"1012",nickname:"忧郁猫",visits:NumberInt(2020)}); 
db.spit.insert({_id:"2",content:"关于秃头程序员如何护发",userid:"1013",nickname:"李大富",visits:NumberInt(1023)}); 
db.spit.insert({_id:"3",content:"不会做饭的程序员不是一个好厨子",userid:"1013",nickname:"李大嘴",visits:NumberInt(111)}); 
db.spit.insert({_id:"4",content:"人到中年就发福",userid:"1014",nickname:"土肥圆",visits:NumberInt(1223)});
db.spit.insert({_id:"4",content:"从删库跑路到精通java",userid:"1014",nickname:"工程狗",parentid:"2",visits:NumberInt(1223)});

2.1 查询记录

@Test
    public void findTest() {
        // 创建连接
        MongoClient client = new MongoClient("192.168.1.90", 27017);
        // 获取数据库对象
        MongoDatabase spitdb = client.getDatabase("spitdb");
        // 获取集合
        MongoCollection<Document> spit = spitdb.getCollection("spit");
        // 获取集合中的文档 查询所有
        FindIterable<Document> documents = spit.find();

        // 条件查询 查询 userid为 1013的记录
        BasicDBObject dbObject = new BasicDBObject("userid", "1013");
        FindIterable<Document> filterFind = spit.find(dbObject);

        // 条件查询 查询浏览量 大于 1000 的记录
        BasicDBObject gtObject = new BasicDBObject("visits", new BasicDBObject("$gt", 1000));
        FindIterable<Document> gtFilterFind = spit.find(gtObject);

        // 展示查询结果
        for (Document doc : gtFilterFind) {
            System.out.println("_id: " + doc.get("_id"));
            System.out.println("content: " + doc.getString("content"));
            System.out.println("userid: " + doc.getString("userid"));
            System.out.println("nickname: " + doc.getString("nickname"));
            System.out.println("--------------------------------------------");
        }
        // 关闭连接
        client.close();
    }

2.2 新增记录

@Test
    public void saveTest() {
        // 创建连接
        MongoClient client = new MongoClient("192.168.1.90", 27017);
        // 获取数据库对象
        MongoDatabase spitdb = client.getDatabase("spitdb");
        // 获取集合
        MongoCollection<Document> spit = spitdb.getCollection("spit");

        // 添加一条数据
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("_id", "5");
        map.put("content", "人到中年不得已,一顿能吃三碗米");
        map.put("userdid", "1015");
        map.put("nickname", "李富贵");
        map.put("publishtime", new Date());
        Document document = new Document(map);
        spit.insertOne(document);

        // 获取集合中的文档 查询所有
        FindIterable<Document> documents = spit.find();
        // 展示查询结果
        for (Document doc : documents) {
            System.out.println("_id: " + doc.get("_id"));
            System.out.println("content: " + doc.getString("content"));
            System.out.println("userid: " + doc.getString("userid"));
            System.out.println("nickname: " + doc.getString("nickname"));
            System.out.println("--------------------------------------------");
        }
        // 关闭连接
        client.close();
    }

2.3 更新记录

@Test
    public void updateTest() {
        // 创建连接
        MongoClient client = new MongoClient("192.168.1.90", 27017);
        // 获取数据库对象
        MongoDatabase spitdb = client.getDatabase("spitdb");
        // 获取集合
        MongoCollection<Document> spit = spitdb.getCollection("spit");

        // 更新一条记录 把 nickname = 李富贵更改为张富贵
        Document document = new Document("nickname", "张富贵");
        UpdateResult a = spit.updateOne(Filters.eq("nickname", "李富贵"), new Document("$set", document));

        // 获取集合中的文档 查询所有
        FindIterable<Document> documents = spit.find();
        // 展示查询结果
        for (Document doc : documents) {
            System.out.println("_id: " + doc.get("_id"));
            System.out.println("content: " + doc.getString("content"));
            System.out.println("userid: " + doc.getString("userid"));
            System.out.println("nickname: " + doc.getString("nickname"));
            System.out.println("--------------------------------------------");
        }
        // 关闭连接
        client.close();
    }

2.4 删除记录

@Test
    public void deleteTest() {
        // 创建连接
        MongoClient client = new MongoClient("192.168.1.90", 27017);
        // 获取数据库对象
        MongoDatabase spitdb = client.getDatabase("spitdb");
        // 获取集合
        MongoCollection<Document> spit = spitdb.getCollection("spit");

        // 删除一条记录 如果有多个记录符合条件 那么根据添加时间删除最早的一条
        DeleteResult res = spit.deleteOne(Filters.eq("userid", "1014"));
        System.out.println(res);

        // 获取集合中的文档 查询所有
        FindIterable<Document> documents = spit.find();
        // 展示查询结果
        for (Document doc : documents) {
            System.out.println("_id: " + doc.get("_id"));
            System.out.println("content: " + doc.getString("content"));
            System.out.println("userid: " + doc.getString("userid"));
            System.out.println("nickname: " + doc.getString("nickname"));
            System.out.println("--------------------------------------------");
        }
        // 关闭连接
        client.close();
    }

你可能感兴趣的:(MongoDB,mongodb,java,maven)