JAVA Boy 快速上手MongoDB教程(1)

JAVA Boy 快速上手MongoDB教程(1)

前置知识

MongoDB 是什么?

MongoDB(来自"humongous",意为庞大的)是一种开源的、跨平台的文档导向数据库管理系统(DBMS)。它属于NoSQL(非关系型数据库)类别,与传统的关系型数据库(如MySQL、PostgreSQL)相比,MongoDB采用了不同的数据存储和查询方式。

MongoDB以其灵活的数据模型而闻名,它使用类似JSON的BSON(二进制JSON)格式来存储数据。这意味着你可以存储不同结构和类型的数据记录,而不需要预先定义表结构。这在应对不断变化的数据需求和快速迭代的开发过程中非常有用。

它跟传统关系型数据库有什么相似的地方

MongoDB 的存储结构区别于传统的关系型数据库,主要由如下三个单元组成:

  • 文档(Document) :MongoDB 中最基本的单元,由 BSON 键值对(key-value)组成,类似于关系型数据库中的行(Row)。
  • 集合(Collection) :一个集合可以包含多个文档,类似于关系型数据库中的表(Table)。
  • 数据库(Database) :一个数据库中可以包含多个集合,可以在 MongoDB 中创建多个数据库,类似于关系型数据库中的数据库(Database)。

也就是说,MongoDB 将数据记录存储为文档(更具体来说是BSON 文档),这些文档在集合中聚集在一起,数据库中存储一个或多个文档集合。

SQL 与 MongoDB 常见术语对比

SQL MongoDB
表(Table) 集合(Collection)
行(Row) 文档(Document)
列(Col) 字段(Field)
主键(Primary Key) 对象 ID(Objectid)
索引(Index) 索引(Index)
嵌套表(Embeded Table) 嵌入式文档(Embeded Document)
数组(Array) 数组(Array)

安装

linux安装包地址

windows安装包地址

建议直接安装windows版本,傻瓜式安装,带图形化界面,学习时比较方便

在Java中使用

配置

  1. 添加pom依赖
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>bson</artifactId>
            <version>3.12.11</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>3.12.11</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver-core</artifactId>
            <version>3.12.11</version>
        </dependency>
  1. 连接MongoDB配置
    /**
     *
     * @param databaseName 数据库名
     * @return 操作数据库实例
     */
    public MongoDatabase getMongoDatabase(String databaseName){
   
        // 创建 MongoDB 连接
        MongoClient mongo = new MongoClient("localhost", 27017);
        // 连接到 MongoDB
        // zs 要连接到数据库的用户名
        // databaseName 要连接的数据库名称
        // password 与用户名相关联的密码,以字符数组的形式传递
        MongoCredential.createCredential("zs", databaseName, "password".toCharArray());
        // 返回访问的数据库实例
        return mongo.getDatabase(databaseName);
    }
  1. 验证是否成功连接
    @Test
    public void test(){
   
        MongoDatabase database = getMongoDatabase("study");
        System.out.println("databaseName: " + database.getName()); //databaseName: study
    }

操作集合(表)

创建集合
    @Test
    public void createCollection(){
   
        MongoDatabase database = getMongoDatabase("study");
        // 创建集合 可以把它理解为创建一张表
        database.createCollection("zs_test_1");
    }
查询单个集合
    @Test
    public void selectCollection(){
   //查询单个集合
        MongoDatabase database = getMongoDatabase("study");
        //获取指定集合实例对象
        MongoCollection<Document> collection = database.getCollection("zs_test_1");
        System.out.println(collection.getNamespace());
    }
查询所有集合
    @Test
    public void selectAllCollection(){
   //查询所有集合
        MongoDatabase database = getMongoDatabase("study");
        // 检索所有集合名字列表
        for (String name : database.listCollectionNames()) {
   
            System.out.println(name);
        }
        // 检索所有集合列表
        for (Document document : database.listCollections()) {
   
            System.out.println(document);
        }
    }
删除集合
    @Test
    public void deleteCollection(){
   
        MongoDatabase database = getMongoDatabase("study");
        // 检索集合
        MongoCollection<Document> collection = database.getCollection("zs_test_1
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值