您当前的位置: 首页 >  mongodb

Charge8

暂无认证

  • 3浏览

    0关注

    447博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

使用mongodb-driver驱动包操作MongoDB

Charge8 发布时间:2021-05-03 23:05:49 ,浏览量:3

  • mongodb-driver mongodb-driver 是mongodb 官方推出的Java连接MongoDB的驱动包,相当于JDBC驱动。 该包操作mongodb非常的不友好,这里只提一下有这个技术,感兴趣的可以自己看菜鸟教程学习一下。
  • SpringDataMongoDB SpringDataMongoDB是SpringData家族成员之一,吊炸天的MongoDB持久层框架,底层封装了mongodb-driver。

下面使用 mongodb-driver来操作MongoDB。 创建一个 maven工程, 引入 mongodb-driver依赖。

    
    
      org.mongodb
      mongo-java-driver
      3.12.7
    
一、连接MongoDB 1、连接MongoDB服务 1.1 不通过认证连接MongoDB服务

MongoClient mongoClient = new MongoClient(“localhost”, 27017);

  • “localhost” 表示连接的服务器地址,
  • 默认端口号为 27017,可以省略 。
1.2 通过安全认证连接MongoDB服务(推荐使用)
		List adds = new ArrayList();
		// ServerAddress()两个参数分别为 服务器地址 和 端口
		ServerAddress serverAddress = new ServerAddress("localhost", 27017);
		adds.add(serverAddress);

		List credentials = new ArrayList();
		// MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
		MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());
		credentials.add(mongoCredential);

		// 通过连接认证获取MongoDB连接
		MongoClient mongoClient = new MongoClient(adds, credentials);
1.3 将连接信息封装成工具类

新建 MongoDBUtil类。通过安全认证连接 MongoDB服务。

import com.mongodb.*;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.MongoIterable;
import org.bson.Document;

import java.util.ArrayList;
import java.util.List;
public class MongoDBUtil {

	private static MongoClient mongoClient;

	static {
		System.out.println("===============MongoDBUtil初始化========================");
		List adds = new ArrayList();
		//ServerAddress()两个参数分别为 服务器地址 和 端口
		ServerAddress serverAddress = new ServerAddress("localhost", 27017);
		adds.add(serverAddress);
		List credentials = new ArrayList();
		//MongoCredential.createScramSha1Credential()三个参数分别为 用户名 数据库名称 密码
		MongoCredential mongoCredential = MongoCredential.createScramSha1Credential("username", "databaseName", "password".toCharArray());
		credentials.add(mongoCredential);
		//通过连接认证获取MongoDB连接
		mongoClient = new MongoClient(adds, credentials);
		System.out.println("==========Connect to MongoDB successfully================");
	}

	public static MongoClient getMongoClient() {
		return mongoClient;
	}
}	
2、 数据库操作 2.1 获取所有数据库
	@Test
	public void testGetDBS() {
		MongoIterable dbNames = MongoDBUtil.getMongoClient().listDatabaseNames();
		for (String db : dbNames) {
			System.out.println(db);
		}
	}

在这里插入图片描述

2.2 获取指定数据库 - 若DB不存在则创建
	@Test
	public void testGetDB() {
		MongoDatabase db3 = MongoDBUtil.getMongoClient().getDatabase("m_db3");
		System.out.println(db3); //com.mongodb.client.internal.MongoDatabaseImpl@1d9b7cce
	}
3、获取数据库中的集合 3.1 获取某数据库中的所有集合
	@Test
	public void testGetDBAllCollection() {
		MongoDatabase db1 = MongoDBUtil.getMongoClient().getDatabase("m_db1");
		MongoIterable collNames = db1.listCollectionNames();
		for (String collName : collNames) {
			System.out.println(collName);
		}
	}

在这里插入图片描述

3.2 获取某数据库中的某个集合
	@Test
	public void testGetCollection() {
		MongoDatabase db1 = MongoDBUtil.getMongoClient().getDatabase("m_db1");
		MongoCollection coll3 = db1.getCollection("coll3");
		System.out.println(coll3.countDocuments()); //7
	}
3.3 创建集合

db1.createCollection(“coll4”);

二、对数据库进行CRUD 1、插入操作 1.1 插入一个文档
    @Test
    public void test() {
        // 创建一个数据库
        MongoDatabase db3 = MongoDBUtil.getMongoClient().getDatabase("m_db3");
        // 创建一个集合,获取该集合
        db3.createCollection("coll1");
        MongoCollection coll1 = db3.getCollection("coll1");

        // 创建文档
        Map map = new HashMap();
        map.put("_id", "11");
        map.put("name", "zhaoyun");
        map.put("age", 18);
        map.put("sex", 1);
        Document document = new Document(map);
        //向集合中插入文档
        coll1.insertOne(document);
        System.out.println(coll1.countDocuments()); //1
    }
1.2 插入多个文档
    @Test
    public void test() {
        MongoDatabase db3 = MongoDBUtil.getMongoClient().getDatabase("m_db3");
        MongoCollection coll1 = db3.getCollection("coll1");

        //要插入的文档
        List documents = new ArrayList();
        for(int i = 2; i {_id=22, name=luna2, age=12, sex=0}}            
关注
打赏
1664721914
查看更多评论
0.0731s