MonggoDB

最近一直在做数据接入相关的工作,刚好用到了MongoDb,下面就简单介绍下MongoDB连接及查询语法。

MongoDB

MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代传统的关系型数据库或键/值存储方式。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。

基本概念

在MongoDB中基本的概念是数据库、集合、文档,如下表所示。

Java Demo

mvn 依赖

<!--mongoDb driver -->
<dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongo-java-driver</artifactId>
      <version>3.8.0</version>
</dependency>

jdbc连接 Demo

public class MongoDBDemo{
   private MongoClient client;
   private MongodbConnection connection;
   private String uriFormat = "mongodb://%s:%s@%s/%s";

   private void initClient() {
        if (CollectionUtils.isEmpty(connection.getAddress())) {
            return;
        }

        try {
            String seedStr = connection.getAddress().stream().collect(Collectors.joining(","));
            String uriStr = String.format(uriFormat, connection.getUsername(), connection.getPassword(), seedStr,
                    connection.getDatabase());
            if (StringUtil.isNotEmpty(connection.getReplSetName())) {
                uriStr = uriStr + "?replicaSet=" + connection.getReplSetName();
            } // end if
                // 另一种通过URI初始化
                // mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
            MongoClientURI connectionUri = new MongoClientURI(uriStr);
            this.client = new MongoClient(connectionUri);
        } catch (Exception e) {
            log.error("mongodb connection fail,throws exception", e);
            throw new BizRuntimeException(ErrorCode.getError(SqlExecuteError.MONGODB_CONNECTION_TIMEOUT));
        } // end try-carch

    }
}

MongoDB 查询语法

查询语法详细参考 官网

常用查询语法Java Demo

1 获取Table

/***
     * 获取collection = table
     * 
     * @param tableName
     * @return
     */
    public MongoCollection<Document> getTable(String tableName) {
        MongoDatabase db = client.getDatabase(connection.getDatabase());
        return db.getCollection(tableName);
    }

2 First Doc

一般用于预览MongoDB某个DB中的Doc信息。

/***
     * 获取集合的第一个文档
     * 
     * @param tableName
     * @return
     */
    public Document getFirstDoc(String tableName) throws Exception {
        MongoDatabase db = client.getDatabase(connection.getDatabase());
        MongoCollection<Document> table = db.getCollection(tableName);
        MongoCursor<Document> iter = table.find().iterator();
        Document document = null;

        while (iter.hasNext()) {
            document = iter.next();
            document.remove(CommonConstants.MONGODB_ID);
            break;
        } // end while
        return document;
    }

 

 

### 安装与配置 MongoDB on Windows #### 准备工作 为了成功安装并运行 MongoDB,在 Windows 环境下需先下载适合版本的 MongoDB 并解压到指定目录。通常建议将 MongoDB 解压缩至 `C:\Program Files` 或其他安全路径。 #### 创建数据文件夹和服务日志位置 确保创建用于存储数据库的数据文件夹以及服务的日志记录位置。例如,可以在 `D:` 驱动器上建立名为 `data\db` 的子文件夹来保存实际数据[^1]。 #### 编写批处理脚本自动完成安装启动过程 通过编写 `.bat` 文件简化命令行操作流程。下面是一个简单的批处理脚本实例: ```batch @echo off :: 设置环境变量指向 mongod 可执行程序的位置 set PATH=%PATH%;%~dp0 :: 启用回显功能显示当前正在执行的操作 echo Installing MongoDB... mongod --config "%~dp0mongod.cfg" --serviceName "MongoDB" --install if errorlevel 1 goto :error :: 如果上述命令无误,则继续尝试启动该服务 net start MongoDB || ( echo Failed to start MongoDB & exit /b 1 ) goto :EOF :error echo An error occurred during installation. exit /b %ERRORLEVEL% ``` 此脚本会读取同级目录下的配置文件 (`mongod.cfg`) 来设置必要的参数,并注册为系统服务以便于管理[^4]。 #### 修改配置文件以适应具体需求 编辑 `mongod.cfg` 文档定义监听端口、绑定 IP 地址以及其他高级选项。对于生产环境中部署的服务而言,启用认证机制是非常重要的一步,这可以通过向配置文件添加如下几行实现: ```yaml security: authorization: enabled ``` 之后按照官方指南指示创建管理员账户及其凭证信息。 #### 使用 Java 进行连接测试 一旦服务器端已经就绪,可以利用像 HowToDoInJava 提供的方法验证客户端能否正常访问新搭建好的 MongoDB 实例[^2]。 ```java import com.mongodb.MongoClient; import com.mongodb.client.MongoDatabase; public class MongoConnectionTest { public static void main(String[] args) { MongoClient mongoClient = new MongoClient("localhost", 27017); MongoDatabase database = mongoClient.getDatabase("testdb"); System.out.println("Connected successfully."); mongoClient.close(); } } ``` 以上就是关于如何在 Windows 上安装和初步配置 MongoDB 社区版的主要步骤概述[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值