您的位置 首页 java

Java操作MongoDB进行增删改查

上一篇主要讲了 MongoDB 数据的介绍,还有 mongodb 数据库的安装和配置。经常有项目中会需要连接MongoDB数据库并操作数据库进行增删改查,本文主要讲在Java中怎么操作MongoDB数据库进行增删改查。

Java操作MongoDB

1)Java操作MongoDB需要第三方驱动程序,Maven项目可以在pom.xml文件加入依赖

 <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongo-java-driver</artifactId>
                <version>3.0.4</version>
</dependency>  

2)非 Maven 项目可以下载驱动程序jar包,导入项目buildBath路径。

代码实现

 import com.mongodb.MongoClient;
import com.mongodb.MongoCredential;
import com.mongodb.ServerAddress;
import com.mongodb.client. Find Iterable;
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.List;

public class MongoUtil {
    //不通过认证获取连接数据库对象
    public  static  MongoDatabase getConnect() {
        //连接到 mongodb 服务
        MongoClient mongoClient = new MongoClient("localhost", 27017);
        //连接到数据库
        MongoDatabase mongoDatabase = mongoClient.getDatabase("test");
        //返回连接数据库对象
        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("username", "databaseName", "password".toCharArray());
        credentials.add(mongoCredential);
        //通过连接认证获取MongoDB连接
        MongoClient mongoClient = new MongoClient(adds, credentials);
        //连接到数据库
        MongoDatabase mongoDatabase =
                mongoClient.getDatabase("test");

        //返回连接数据库对象
        return mongoDatabase;
    }

    /**
     * 插入一个文档
     */    public  void  insertOne() {
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoUtil.getConnect();
        //获取集合
        MongoCollection<org.bson.Document> collection = mongoDatabase.getCollection("user");
        //要插入的数据
        Document document = new Document("name", "张三").append("sex", "男").append("age", 18);
        //插入一个文档
        collection.insertOne(document);
    }
    /**
     * 插入多个文档
     */    public void insertMany() {
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoUtil.getConnect();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");
        //要插入的数据
        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);
    }

    /**
     * 删除一个文档
     */    public void deleteOne() {
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoUtil.getConnect();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");
        //申明删除条件
        Bson filter = Filters.eq("age", 18);
        //删除与筛选器匹配的单个文档
        collection.deleteOne(filter);
    }
    /**
     * 删除多个文档
     */    public void deleteMany() {
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoUtil.getConnect();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");
        //申明删除条件
        Bson filter = Filters.eq("age", 18);
        //删除与筛选器匹配的所有文档
        collection.deleteMany(filter);
    }

    /**
     * 修改一个文档
     */    public void updateOne() {
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoUtil.getConnect();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");
        //修改过滤器
        Bson filter = Filters.eq("name", "张三");
        //指定修改的更新文档
        Document document = new Document("$set", new Document("age", 100));
        //修改单个文档
        collection.updateOne(filter, document);
    }
    /**
     * 修改多个文档
     */    public void updateMany() {
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoUtil.getConnect();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");
        //修改过滤器
        Bson filter = Filters.eq("name", "张三");
        //指定修改的更新文档
        Document document = new Document("$set", new Document("age", 100));
        //修改多个文档
        collection.updateMany(filter, document);
    }

    /**
     * 查询所有文档
     */    public void find() {
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoUtil.getConnect();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");
        //查找集合中的所有文档
        FindIterable findIterable = collection.find();
        MongoCursor cursor = findIterable. iterator ();
        while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }
    }

    /**
     * 通过过滤器查询
     */    public void Filterfind() {
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoUtil.getConnect();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");
        //指定查询过滤器
        Bson filter = Filters.eq("name", "张三");
        //指定查询过滤器查询
        FindIterable findIterable = collection.find(filter);
        MongoCursor cursor = findIterable.iterator();
        while (cursor.hasNext()) {
            System.out.println(cursor.next());
        }
    }

    /**
     * 查询第一个文件
     */    public void findfirst() {
        //获取数据库连接对象
        MongoDatabase mongoDatabase = MongoUtil.getConnect();
        //获取集合
        MongoCollection<Document> collection = mongoDatabase.getCollection("user");
        //查找集合中的所有文档
        FindIterable findIterable = collection.find();
        //取出查询到的第一个文档
        Document document = (Document) findIterable.first();
        //打印输出
        System.out.println(document);
    }
}
  

文章来源:智云一二三科技

文章标题:Java操作MongoDB进行增删改查

文章地址:https://www.zhihuclub.com/197491.shtml

关于作者: 智云科技

热门文章

网站地图