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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> idea java连接MongoDB(3)——增删查改 -> 正文阅读

[大数据]idea java连接MongoDB(3)——增删查改

1. 编写前测试

idea java连接MongoDB——测试_连胜是我偶像的博客-CSDN博客

2. 总代码

通过对main函数里面的方法的注释,来达到测试目的

package com.company;

import com.mongodb.MongoClient;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;
import org.bson.conversions.Bson;

import java.util.ArrayList;
import java.util.logging.Filter;

public class Main {

    public static void main(String[] args) {

        //连接mongodb服务,连接到默认localhost服务器,端口号为27017
        MongoClient mongoClient = new MongoClient();

        //连接到数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");

        //获取学生集合。我在mongodb test数据库中的集合名称为 stu
        MongoCollection<Document> stu = mongoDatabase.getCollection("stu");



//        //插入一条文档
//        createOneDoc(mongoDatabase);

//        //插入多条文档
//        createManyDoc(mongoDatabase);

//        //删除一条文档
//        deleteOneDoc(mongoDatabase);

//        //删除多条文档
//        deleteManyDoc(mongoDatabase);

//        //按条件查找文档
//        findDocByRequirement(mongoDatabase);

//        //修改文档
//        updateDoc(mongoDatabase);

//        //打印stu的所有数据
//        outputAll(stu);


    }//main


    /**
     * 修改文档 :局部修改
     * @param mongoDatabase 数据库
     */
    private static void updateDoc(MongoDatabase mongoDatabase) {
        //获取集合stu
        MongoCollection<Document> stu = mongoDatabase.getCollection("stu");

        //名字条件:获取条件 eq:等于
        Bson nameFilter = Filters.eq("name", "戚杏");

        Document age = new Document("age", 26.0);
        Document update = new Document("$set", age);
        //前两条可合并
        //Document document = new Document("$set", new Document("age", "26"));

        //前面是条件 后面是修改
        stu.updateOne(nameFilter,update);
    }

    /**
     * 删除所有满足条件的文档
     * @param mongoDatabase 数据库
     */
    private static void deleteManyDoc(MongoDatabase mongoDatabase) {
        //获取集合stu
        MongoCollection<Document> stu = mongoDatabase.getCollection("stu");

        //获取删除的条件 eq:等于
        Bson nameFilter = Filters.eq("name", "戚杏");

        //调用deleteMany方法 删除所有
        stu.deleteMany(nameFilter);

        System.out.println("delete all ok");
    }

    /**
     * 删除一条文档
     * @param mongoDatabase 数据库
     */
    private static void deleteOneDoc(MongoDatabase mongoDatabase) {
        //获取集合stu
        MongoCollection<Document> stu = mongoDatabase.getCollection("stu");

        //获取删除的条件 eq:等于
        Bson nameFilter = Filters.eq("name", "宋问");

        //调用方法
        stu.deleteOne(nameFilter);

        System.out.println("delete ok");
    }

    /**
     * 插入多条文档
     * @param mongoDatabase 数据库
     */
    private static void createManyDoc(MongoDatabase mongoDatabase) {
        //获取集合stu
        MongoCollection<Document> stu = mongoDatabase.getCollection("stu");

        //获取需要增加的文档信息
        Document document1 = new Document("name", "戚杏")
                .append("age","17.0")
                .append("isgirl","true")
                .append("addr","广州市海珠区");
        Document document2 = new Document("name", "宋问")
                .append("age","23.0")
                .append("isgirl","true")
                .append("addr","广州市白云区");

        //把两个文档信息合并
        ArrayList<Document> documents = new ArrayList<>();
        documents.add(document1);
        documents.add(document2);

        //调用方法
        stu.insertMany(documents);

        System.out.println("ok");


    }

    /**
     * 插入一条数据
     * @param mongoDatabase 数据库
     */
    private static void createOneDoc(MongoDatabase mongoDatabase) {
        //获取集合stu
        MongoCollection<Document> stu = mongoDatabase.getCollection("stu");

        Document document = new Document("name", "戚杏")
                .append("age","20.0")
                .append("isgirl","true")
                .append("addr","广州市海珠区");
        //调用insertOne方法
        stu.insertOne(document);
        System.out.println("Successfully inserted a piece of data");

    }

    /**
     * 按条件查找
     * @param mongoDatabase 数据库
     */
    private static void findDocByRequirement(MongoDatabase mongoDatabase) {
        //获取集合stu
        MongoCollection<Document> stu = mongoDatabase.getCollection("stu");

        //名字条件:获取条件 eq:等于
        Bson nameFilter = Filters.eq("name", "连胜");
        //获取数据
        FindIterable<Document> nameDocument = stu.find(nameFilter);
        //打印
        System.out.println("name=连胜 :");
        outputDocument(nameDocument);

        //年龄条件:获取条件 lt:小于
        Bson ageFilter = Filters.lt("age", 18);
        FindIterable<Document> ageDocument = stu.find(ageFilter);
        //打印
        System.out.println("age<18 :");
        outputDocument(ageDocument);

    }

    /**
     * 打印 通过find()获取的数据
     * @param documents find()获取的数据集
     */
    private static void outputDocument(FindIterable<Document> documents) {
        for (Document document : documents){
            System.out.println(document);
        }
    }

    /**
     * 打印集合stu的所有信息
     * @param stu 集合stu
     */
    private static void outputAll(MongoCollection<Document> stu) {
        //调用集合中的find()方法,查看文档
        FindIterable<Document> documents = stu.find();

        //遍历documents
        MongoCursor<Document> iterator = documents.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }//while
    }
}

  大数据 最新文章
实现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:25 
 
开发: 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/27 11:28:18-

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