前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用Java操作Mongodb实现CRUD

用Java操作Mongodb实现CRUD

作者头像
大数据梦想家
发布2021-01-27 11:00:44
1.1K0
发布2021-01-27 11:00:44
举报
文章被收录于专栏:大数据成长之路

本篇博客,为大家带来在IDEA上通过Java代码实现Mongodb的CRUD操作!

在这里插入图片描述
在这里插入图片描述

一.连接数据库

连接数据库一共有两种方法,分别为不通过认证获取连接数据库对象与需要密码认证方式连接两种方式。因为对Mongodb数据库的每一步操作都需要先连接数据库,建议把连接数据库的操作封装到一个工具类方便后续的使用!

代码语言:javascript
复制
package com.czxy.mongodb;

import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client.MongoDatabase;

import java.util.ArrayList;
import java.util.List;

/**
 * @Auther: Alice菌
 * @Date: 2020/3/6 19:41
 * @Description: 流年笑掷 未来可期。以梦为马,不负韶华!
 */

// mongodb 连接数据库工具类
public class MongoDBUtil {
    // 不通过认证获取连接数据库对象
    public static MongoDatabase getConnect1(){

        // 连接到 mongodb 服务
        MongoClient mongoClient = new MongoClient("localhost", 27017);
        // 连接到数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase("demo0304");
        // 返回连接数据库对象
        return mongoDatabase;

    }

    // 需要密码认证方式连接
    public static MongoDatabase getConnect2(){
        List<ServerAddress> adds = new ArrayList<>();
        //ServerAddress()两个参数分别为 服务器地址 和 端口
        ServerAddress serverAddress = new ServerAddress("localhost", 27017);
        adds.add(serverAddress);
        List<MongoCredential> credentials = new ArrayList<>();
        //MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
        MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("root", "demo0304", "root".toCharArray());
        credentials.add(mongoCredential);
        //通过连接认证获取MongoDB连接
        MongoClient mongoClient = new MongoClient(adds, credentials);
        //连接到数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase("demo0304");
        //返回连接数据库对象
        return mongoDatabase;

    }



}

二.插入文档

<1>插入一个文档

代码语言:javascript
复制
/**
     *  插入一个文档(对应于关系型数据库表中的一行)
     */
    @Test
    public void insertOneTest(){
        // 获取数据库连接对象
        MongoDatabase mongoDatabase = MongoDBUtil.getConnect1();
        // 获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("table_01");
        // 创建文档对象<要插入的数据>
        Document document = new Document("name", "张三")
                          .append("sex","男")
                          .append("age",18);
        // 插入一个文档
        collection.insertOne(document);

    }

<2>插入多个文档

代码语言:javascript
复制
/**
     * 插入多个文档
     */
    @Test
    public void insertManyTest(){

        // 获取数据库连接对象
        MongoDatabase mongoDatabase = MongoDBUtil.getConnect1();
        // 获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("table_01");
        // 要插入的数据
        List<Document> list = new ArrayList<>();
        for (int i = 1; i <= 3 ; i++) {

            Document document = new Document("name", "张三")
                    .append("sex","男")
                    .append("age",18);
            list.add(document);

        }

        // 插入多个文档
        collection.insertMany(list);
    }

三.删除文档

<1>删除与筛选器匹配的单个文档

代码语言:javascript
复制
/**
     * 删除与筛选器匹配的单个文档
     */
    @Test
    public void deleteOneTest(){

        // 获取数据库连接对象
        MongoDatabase mongoDatabase = MongoDBUtil.getConnect1();
        // 获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("table_01");
        //申明删除条件
        Bson filter = Filters.eq("age",18);
        //删除与筛选器匹配的单个文档
        collection.deleteOne(filter);

    }

<2>删除与筛选器匹配的所有文档

代码语言:javascript
复制
    /**
     * 删除与筛选器匹配的所有文档
     */
    @Test
    public void deleteManyTest(){
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoDBUtil.getConnect1();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("table_01");
        //申明删除条件
        Bson filter = Filters.eq("age",18);
        //删除与筛选器匹配的所有文档
        collection.deleteMany(filter);


    }

四.修改文档

<1>修改单个文档

代码语言:javascript
复制
  /**
     * 修改单个文档
     */
    @Test
    public void updateOneTest(){

        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoDBUtil.getConnect1();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("table_01");
        //修改过滤器
        Bson filter = Filters.eq("name", "张三");
        //指定修改的更新文档
        Document document = new Document("$set", new Document("age", 100));
        //修改单个文档
        collection.updateOne(filter, document);

    }

<2>修改多个文档

代码语言:javascript
复制
    /**
     * 修改多个文档
     */
    @Test
    public void updateManyTest(){

        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoDBUtil.getConnect2();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("table_01");
        //修改过滤器
        Bson filter = Filters.eq("name", "张三");
        //指定修改的更新文档
        Document document = new Document("$set", new Document("age", 100));
        //修改单个文档
        collection.updateMany(filter, document);

    }

五.查询文档

<1>查询所有

代码语言:javascript
复制
    /**
     * 查询集合中的所有文档
     */
    @Test
    public void findTest(){

        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoDBUtil.getConnect1();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("table_01");

        //查找集合中的所有文档
        FindIterable findIterable = collection.find();
        MongoCursor cursor = findIterable.iterator();
        while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }

    }

<2>查询第一个文档

代码语言:javascript
复制
 /**
     * 查询到的第一个文档
     */
    @Test
    public void findFirstTest(){
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoDBUtil.getConnect1();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("table_01");
        //查找集合中的所有文档
        FindIterable findIterable = collection.find();
        //取出查询到的第一个文档
        Document document = (Document) findIterable.first();
        //打印输出
        System.out.println(document);

    }

<3>指定过滤器查询

代码语言:javascript
复制
   /**
     * 指定查询过滤器查询
     */
    @Test
    public void FilterfindTest(){
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoDBUtil.getConnect1();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("table_01");
        //指定查询过滤器
        Bson filter = Filters.eq("name", "张三");
        //指定查询过滤器查询
        FindIterable findIterable = collection.find(filter);
        MongoCursor cursor = findIterable.iterator();

        //迭代器遍历
        while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }
    }

上述的所有代码博主亲测,都能成功运行,小伙伴们大可不必担心。

本次的记录分享就到这里,受益的朋友不妨点个赞支持一下~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/03/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.连接数据库
  • 二.插入文档
    • <1>插入一个文档
      • <2>插入多个文档
      • 三.删除文档
        • <1>删除与筛选器匹配的单个文档
          • <2>删除与筛选器匹配的所有文档
          • 四.修改文档
            • <1>修改单个文档
              • <2>修改多个文档
              • 五.查询文档
                • <1>查询所有
                  • <2>查询第一个文档
                    • <3>指定过滤器查询
                    相关产品与服务
                    云数据库 MongoDB
                    腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档