IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 使用Java-Maven操作MongoDB增删改查 -> 正文阅读

[大数据]使用Java-Maven操作MongoDB增删改查

1. 环境配置

pom.xml 依赖

<dependencies>
        <!-- mongodb驱动 -->
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>3.6.3</version>
        </dependency>
        <!-- 单元测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.10</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <!--Maven插件-->
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </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();
    }
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-19 11:58:28  更:2022-05-19 11:59:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:54:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码