通过程序代码连接MongoDB实例

云数据库 DocDB for MongoDB MONGODB

  • 功能发布记录
  • 产品描述
    • 实例规格
    • 产品特性
    • 系统架构
    • 应用场景
    • 产品术语
    • 概述
  • 重要通知
    • 品牌升级
  • 快速入门
    • 副本集实例快速入门
    • 分片集实例快速入门
  • 典型实践
    • MongoDB数据迁移典型实践
    • MongoDB数据安全典型实践
    • MongoDB监控报警典型实践
    • 如何连接副本集实例实现读写分离和高可用
    • MongoDB使用典型实践
    • MongoDB参数配置典型实践
  • 操作指南
    • 开通服务
    • 参数配置
      • 参数说明
      • 参数修改记录查询
      • 查询参数
      • 修改参数
    • 日志管理
      • 查询运行日志
      • 审计日志
        • 关闭审计日志
        • 开通审计日志
        • 查询审计日志
      • 慢日志
        • 查询慢日志
        • 关闭慢日志
        • 开通慢日志
      • 错误日志
        • 关闭错误日志
        • 开通错误日志
        • 查询错误日志
    • 监控与报警
      • 设置报警规则
      • 监控项说明
      • 查看监控信息
    • 公网访问
      • 释放公网访问
      • 申请公网访问
    • 实例管理
      • 重启实例
      • 迁移可用区
      • 回收站和释放实例
      • 改配实例
        • 改配分片集实例
        • 改配副本集实例
        • 改配方案概览
      • 创建实例
        • 创建副本集实例
        • 创建分片集实例
    • 数据安全
      • 透明加密
      • 使用Mongo Shell通过SSL加密连接数据库
      • 设置SSL加密
      • 白名单管理
    • 连接实例
      • 通过MongoShell连接分片集实例
      • 通过公网连接MongoDB实例
      • 通过MongoShell连接副本集实例
      • 通过程序代码连接MongoDB实例
    • 数据备份
      • 开启增量备份
      • 设置自动备份MongoDB数据
      • MongoDB数据备份方案概览
      • 手动备份MongoDB数据
    • 同城容灾
      • 创建多可用区分片集群实例
      • 创建多可用区副本集群实例
    • 帐号管理
      • 多用户访问控制
      • 重置密码
    • 主从切换
      • 副本集实例设置主从切换
      • 分片集设置主从切换
    • 计费管理
      • 手动续费包年包月实例
      • 预付费转后付费
      • 后付费转预付费
      • 开通或关闭自动续费包年包月实例
      • 取消预付费转后付费
    • 标签管理
      • 绑定已有标签
      • 新建标签
      • 根据标签筛选实例
      • 解绑删除标签
    • 数据恢复
      • 物理备份恢复至自建数据库
      • 按时间点恢复至新实例
      • 逻辑备份恢复至自建数据库
      • MongoDB数据恢复方案概览
      • 从备份点创建实例
  • 服务等级协议SLA
    • 服务等级协议SLA
  • API参考
    • 其他接口说明
    • 调用说明
    • 附录
    • API简介
    • 按时间点恢复相关接口
      • 获取可恢复的时间区间
    • 权限管理相关接口
      • 查看用户数据库列表
      • 创建用户数据库
      • 查看用户列表
      • 删除用户
      • 删除用户数据库
      • 更新用户权限
      • 创建用户
    • 备份相关接口
      • 更改备份策略
      • 创建备份
      • 查询备份列表
      • 更改备份备注
      • 查询备份策略
      • 查询备份详情
      • 删除备份
    • 日志管理相关接口
      • 开通运行日志
      • 查询运行日志列表
    • 实例相关接口
      • 副本集实例添加只读节点
      • 重启实例
      • 迁移可用区
      • 修改账号密码
      • 重启分片集实例组件
      • 分片集实例组件改配
      • 更改实例名称
      • 回收站和释放实例
      • 副本集实例改配
      • 分片集实例组件主从切换
      • 获取只读节点列表
      • 更改分片集实例组件名称
      • 查询实例列表
      • 新增分片集实例组件
      • 计费停服和启动服务
      • 副本集实例主从切换
      • 创建副本集实例
      • 创建分片集实例
      • 查询实例详情
    • 白名单相关接口
      • 删除白名单
      • 查询白名单
      • 添加白名单
  • 常见问题
    • 产品使用问题
    • 运维类问题
    • 常见问题总览
  • 产品定价
    • 计费变更
    • 产品定价
  • SDK
    • GO-SDK
      • 标签管理
      • 日志管理
      • 白名单管理
      • 初始化
      • 实例管理
      • 备份管理
      • 安装SDK工具包
      • 概述
所有文档
menu
没有找到结果,请重新输入

云数据库 DocDB for MongoDB MONGODB

  • 功能发布记录
  • 产品描述
    • 实例规格
    • 产品特性
    • 系统架构
    • 应用场景
    • 产品术语
    • 概述
  • 重要通知
    • 品牌升级
  • 快速入门
    • 副本集实例快速入门
    • 分片集实例快速入门
  • 典型实践
    • MongoDB数据迁移典型实践
    • MongoDB数据安全典型实践
    • MongoDB监控报警典型实践
    • 如何连接副本集实例实现读写分离和高可用
    • MongoDB使用典型实践
    • MongoDB参数配置典型实践
  • 操作指南
    • 开通服务
    • 参数配置
      • 参数说明
      • 参数修改记录查询
      • 查询参数
      • 修改参数
    • 日志管理
      • 查询运行日志
      • 审计日志
        • 关闭审计日志
        • 开通审计日志
        • 查询审计日志
      • 慢日志
        • 查询慢日志
        • 关闭慢日志
        • 开通慢日志
      • 错误日志
        • 关闭错误日志
        • 开通错误日志
        • 查询错误日志
    • 监控与报警
      • 设置报警规则
      • 监控项说明
      • 查看监控信息
    • 公网访问
      • 释放公网访问
      • 申请公网访问
    • 实例管理
      • 重启实例
      • 迁移可用区
      • 回收站和释放实例
      • 改配实例
        • 改配分片集实例
        • 改配副本集实例
        • 改配方案概览
      • 创建实例
        • 创建副本集实例
        • 创建分片集实例
    • 数据安全
      • 透明加密
      • 使用Mongo Shell通过SSL加密连接数据库
      • 设置SSL加密
      • 白名单管理
    • 连接实例
      • 通过MongoShell连接分片集实例
      • 通过公网连接MongoDB实例
      • 通过MongoShell连接副本集实例
      • 通过程序代码连接MongoDB实例
    • 数据备份
      • 开启增量备份
      • 设置自动备份MongoDB数据
      • MongoDB数据备份方案概览
      • 手动备份MongoDB数据
    • 同城容灾
      • 创建多可用区分片集群实例
      • 创建多可用区副本集群实例
    • 帐号管理
      • 多用户访问控制
      • 重置密码
    • 主从切换
      • 副本集实例设置主从切换
      • 分片集设置主从切换
    • 计费管理
      • 手动续费包年包月实例
      • 预付费转后付费
      • 后付费转预付费
      • 开通或关闭自动续费包年包月实例
      • 取消预付费转后付费
    • 标签管理
      • 绑定已有标签
      • 新建标签
      • 根据标签筛选实例
      • 解绑删除标签
    • 数据恢复
      • 物理备份恢复至自建数据库
      • 按时间点恢复至新实例
      • 逻辑备份恢复至自建数据库
      • MongoDB数据恢复方案概览
      • 从备份点创建实例
  • 服务等级协议SLA
    • 服务等级协议SLA
  • API参考
    • 其他接口说明
    • 调用说明
    • 附录
    • API简介
    • 按时间点恢复相关接口
      • 获取可恢复的时间区间
    • 权限管理相关接口
      • 查看用户数据库列表
      • 创建用户数据库
      • 查看用户列表
      • 删除用户
      • 删除用户数据库
      • 更新用户权限
      • 创建用户
    • 备份相关接口
      • 更改备份策略
      • 创建备份
      • 查询备份列表
      • 更改备份备注
      • 查询备份策略
      • 查询备份详情
      • 删除备份
    • 日志管理相关接口
      • 开通运行日志
      • 查询运行日志列表
    • 实例相关接口
      • 副本集实例添加只读节点
      • 重启实例
      • 迁移可用区
      • 修改账号密码
      • 重启分片集实例组件
      • 分片集实例组件改配
      • 更改实例名称
      • 回收站和释放实例
      • 副本集实例改配
      • 分片集实例组件主从切换
      • 获取只读节点列表
      • 更改分片集实例组件名称
      • 查询实例列表
      • 新增分片集实例组件
      • 计费停服和启动服务
      • 副本集实例主从切换
      • 创建副本集实例
      • 创建分片集实例
      • 查询实例详情
    • 白名单相关接口
      • 删除白名单
      • 查询白名单
      • 添加白名单
  • 常见问题
    • 产品使用问题
    • 运维类问题
    • 常见问题总览
  • 产品定价
    • 计费变更
    • 产品定价
  • SDK
    • GO-SDK
      • 标签管理
      • 日志管理
      • 白名单管理
      • 初始化
      • 实例管理
      • 备份管理
      • 安装SDK工具包
      • 概述
  • 文档中心
  • arrow
  • 云数据库 DocDB for MongoDBMONGODB
  • arrow
  • 操作指南
  • arrow
  • 连接实例
  • arrow
  • 通过程序代码连接MongoDB实例
本页目录
  • 准备工作
  • Node.js 连接示例
  • PHP 连接示例
  • Java 连接示例
  • Python 连接示例
  • C# 连接示例
  • Go 连接示例

通过程序代码连接MongoDB实例

更新时间:2025-08-21

云数据库MongoDB版完全兼容MongoDB协议,本文介绍各类程序连接数据库的相关示例。

准备工作

  • 根据您的实例类型获取云数据库MongoDB连接地址。
  • 根据您使用的语言下载并安装官方驱动程序。更多信息,请参见MongoDB Drivers。

说明:

  • 本文连接Demo仅适用于百度云提供的MongoDB内网连接地址。
  • 连接分片集群实例时,无需指定下列Demo中的replicaSet相关参数。

Node.js 连接示例

相关链接:MongoDB Node.js Driver。
1.项目初始化

Plain Text
1mkdir node-mongodb-demo
2cd node-mongodb-demo
3npm init

2.安装驱动包以及工具包。

Plain Text
1npm install mongodb node-uuid sprintf-js

3.根据您的实例类型获取云数据库MongoDB连接信息。
4.Node.js Demo Code。

Plain Text
1var host1 = "*********.mongodb.gz.baidubce.com";
2var port1 = 27017;
3var host2 = "*********.mongodb.gz.baidubce.com";
4var port2 = 27017;
5var username = "root";
6var password = "******";
7var replSetName = "rep-******";
8var adminDb = 'admin'
9var demoDb = "test";
10var demoColl = "testColl";
11// 官方建议使用的方案
12var url = sprintf("mongodb://%s:%s@%s:%d,%s:%d/%s?replicaSet=%s", username, password, host1, port1, host2, port2, adminDb, replSetName);
13console.info("url:", url);
14//获取mongoClient
15mongoClient.connect(url, {useUnifiedTopology: true, useNewUrlParser: true}, function (err, db) {
16    	if (err) {
17        	console.error("connect err:", err);
18        	return 1;
19   	 }
20        //取得Collecton句柄
21        var collection = db.db(demoDb).collection(demoColl);
22        var demoName = "NODE:" + uuid.v1();
23        var doc = { "DEMO": demoName, "MESG": "Hello BaiduCoudDB For MongoDB"};
24        console.info("ready insert document: ", doc);
25        // 插入数据
26        collection.insertOne(doc, function (err, data) {
27            if (err) {
28                console.error("insert err:", err);
29                return 1;
30            }
31            console.info("insert result:", data["result"]);
32            // 读取数据
33            var filter = { "DEMO": demoName };
34            collection.find(filter).toArray(function (err, items) {
35                if (err) {
36                    console.error("find err:", err);
37                    return 1;
38                }
39                console.info("find document: ", items);
40                //关闭Client,释放资源
41                db.close();
42        });
43    });
44});

PHP 连接示例

相关链接:MongoDB PHP Driver。
1.安装驱动包以及工具包。

Plain Text
1$ pecl install mongodb
2$ echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
3$ composer require "mongodb/mongodb=^1.0.0"

2.获取云数据库 MongoDB 连接信息。
3.PHP Demo Code。

Plain Text
1<?php
2require 'vendor/autoload.php'; // include Composer goodies
3# 实例信息
4$demo_seed1 = '*********.mongodb.gz.baidubce.com:27017';
5$demo_seed2 = '*********.mongodb.gz.baidubce.com:27017';
6$demo_replname = "rep-******";
7$demo_user = 'root';
8$demo_password = '*********';
9$demo_db = 'admin';
10# 根据实例信息构造mongodb connection string
11# mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
12$demo_uri = 'mongodb://' . $demo_user . ':' . $demo_password . '@' .
13    $demo_seed1 . ',' . $demo_seed2 . '/' . $demo_db . '?replicaSet=' . $demo_replname;
14echo "demo_uri = '$demo_uri'", "\n";
15$client = new MongoDB\Client($demo_uri);
16$collection = $client->testDb->testColl;
17$result = $collection->insertOne(['name' => 'DocDB for Mongodb', 'desc' => 'Hello, Mongodb']);
18echo "Inserted with Object ID '{$result->getInsertedId()}'", "\n";
19$result = $collection->find(['name' => 'DocDB for Mongodb']);
20foreach ($result as $entry) {
21    echo $entry->_id, ': ', $entry->name, "\n";
22}
23?>

Java 连接示例

相关链接:下载Jar包。
1.获取云数据库 MongoDB 连接信息。
2.Java Demo Code。

  • Maven配置。
Plain Text
1<dependencies>
2    <dependency>
3        <groupId>org.mongodb</groupId>
4        <artifactId>mongo-java-driver</artifactId>
5        <version>3.6.4</version>
6    </dependency>
7</dependencies>
  • Java Code。
Plain Text
1import java.util.ArrayList;
2import java.util.List;
3import java.util.UUID;
4
5import com.mongodb.*;
6import com.mongodb.client.MongoCollection;
7import com.mongodb.client.MongoCursor;
8import com.mongodb.client.MongoDatabase;
9import org.bson.BsonDocument;
10import org.bson.BsonString;
11import org.bson.Document;
12
13public class App {
14    public static ServerAddress seed1 = new ServerAddress("*********.mongodb.gz.baidubce.com",
15            27017);
16    public static ServerAddress seed2 = new ServerAddress("*********.mongodb.gz.baidubce.com",
17            27017);
18    public static String username = "root";
19    public static String password = "*********";
20    public static String ReplSetName = "rep-******";
21    public static String DEFAULT_DB = "admin";
22    public static String DEMO_DB = "test";
23    public static String DEMO_COLL = "testColl";
24    public static MongoClient createMongoDBClient() {
25        // 构建Seed列表
26        List<ServerAddress> seedList = new ArrayList<ServerAddress>();
27        seedList.add(seed1);
28        seedList.add(seed2);
29        // 构建鉴权信息
30        List<MongoCredential> credentials = new ArrayList<MongoCredential>();
31        credentials.add(MongoCredential.createScramSha1Credential(username, DEFAULT_DB,
32                password.toCharArray()));
33        // 构建操作选项,requiredReplicaSetName属性外的选项根据自己的实际需求配置,默认参数满足大多数场景
34        MongoClientOptions options = MongoClientOptions.builder().requiredReplicaSetName(ReplSetName)
35                .socketTimeout(2000).connectionsPerHost(1).build();
36        return new MongoClient(seedList, credentials, options);
37    }
38    public static MongoClient createMongoDBClientWithURI() {
39        // 另一种通过URI初始化
40        // mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
41        MongoClientURI connectionString = new MongoClientURI("mongodb://" + username + ":" + password + "@"
42                + seed1 + "," + seed2 + "/" + DEFAULT_DB + "?replicaSet=" + ReplSetName);
43        return new MongoClient(connectionString);
44    }
45    public static void main(String args[]) {
46        MongoClient client = createMongoDBClient();
47        // or
48        // MongoClient client = createMongoDBClientWithURI();
49        try {
50            // 取得Collecton句柄
51            MongoDatabase database = client.getDatabase(DEMO_DB);
52            MongoCollection<Document> collection = database.getCollection(DEMO_COLL);
53            // 插入数据
54            Document doc = new Document();
55            String demoname = "JAVA:" + UUID.randomUUID();
56            doc.append("DEMO", demoname);
57            doc.append("MESG", "Hello DocDB For MongoDB");
58            collection.insertOne(doc);
59            System.out.println("insert document: " + doc);
60            // 读取数据
61            BsonDocument filter = new BsonDocument();
62            filter.append("DEMO", new BsonString(demoname));
63            MongoCursor<Document> cursor = collection.find(filter).iterator();
64            while (cursor.hasNext()) {
65                System.out.println("find document: " + cursor.next());
66            }
67        } finally {
68            // 关闭Client,释放资源
69            client.close();
70        }
71        return;
72    }
73}

Python 连接示例

相关链接:pymongo下载地址。
1.安装pymongo。

Plain Text
1pip install pymongo

2.获取云数据库 MongoDB 连接信息。
3.Python Demo Code。

Plain Text
1import uuid
2from pymongo import MongoClient
3CONN_ADDR1 = '*********.mongodb.gz.baidubce.com:27017'
4CONN_ADDR2 = '*********.mongodb.gz.baidubce.com:27017'
5REPLICAT_SET = 'rep-******'
6username = 'root'
7password = '*********'
8client = MongoClient([CONN_ADDR1, CONN_ADDR2], replicaSet=REPLICAT_SET)
9client.admin.authenticate(username, password)
10demo_name = 'python-' + str(uuid.uuid1())
11print 'demo_name:', demo_name
12doc = dict(DEMO=demo_name, MESG="Hello DocDB For MongoDB")
13doc_id = client.test.testColl.insert(doc)
14print 'doc_id:', doc_id
15for d in client.test.testColl.find(dict(DEMO=demo_name)):
16    print 'find documents:', d

C# 连接示例

相关链接:MongoDB C# Driver。
1.安装如下驱动包。

Plain Text
1mongocsharpdriver.dll

2.获取云数据库 MongoDB 连接信息。
3.C# Demo Code。

Plain Text
1using MongoDB.Driver;
2using System;
3using System.Collections.Generic;
4
5namespace Baiduyun
6{
7    class Program
8    {
9        static void Main(string[] args)
10        {
11            //Mongo 实例信息
12            const string host1 = "*********.mongodb.gz.baidubce.com";
13            const int port1 = 27017;
14            const string host2 = "*********.mongodb.gz.baidubce.com";
15            const int port2 = 27017;
16            const string replicaSetName = "rep-******";
17            const string admin = "admin";
18            const string userName = "root";
19            const string passwd = "*********";
20
21            try
22            {
23                Console.WriteLine("开始连接.......");
24                MongoClientSettings settings = new MongoClientSettings();
25                List<MongoServerAddress> servers = new List<MongoServerAddress>();
26                servers.Add(new MongoServerAddress(host1, port1));
27                servers.Add(new MongoServerAddress(host2, port2));
28                settings.Servers = servers;
29                //设置副本集名称
30                settings.ReplicaSetName = replicaSetName;
31                //设置超时时间为3秒
32                settings.ConnectTimeout = new TimeSpan(0, 0, 0, 3, 0);
33                MongoCredential credentials = MongoCredential.CreateCredential(admin, userName, passwd);
34                settings.Credential = credentials;
35                MongoClient client = new MongoClient(settings);
36                var server = client.GetServer();
37                MongoDatabase database = server.GetDatabase("test");
38                var collection = database.GetCollection<User>("test_collection");
39                User user = new User();
40                user.id = "1";
41                user.name = "mongo_test";
42                user.sex = "女";
43                //插入数据user
44                collection.Insert(user);
45                //获取一条数据
46                User result = collection.FindOne();
47                Console.WriteLine("id:" + result.id + " name:" + result.name + " sex:"+result.sex);
48                Console.WriteLine("连接成功.........");
49            }
50            catch (Exception e)
51            {
52                Console.WriteLine("连接异常:"+e.Message);
53            }
54        }
55    }
56    class User
57    {
58        public string id { set; get; }
59        public string name { set; get; }
60        public string sex { set; get; }
61
62    }
63}

Go 连接示例

相关链接:MongoDB Go Driver。
1.安装如下驱动包。

Plain Text
1go get gopkg.in/mgo.v2

下载失败的话建议设置代理:

Plain Text
1git config --global --unset http.proxy 
2git config --global --unset https.proxy

2.获取云数据库 MongoDB 连接信息。
3.Go Demo Code。

Plain Text
1package main
2import (
3"fmt"
4"log"
5"time"
6"gopkg.in/mgo.v2"
7"gopkg.in/mgo.v2/bson"
8)
9type Person struct {
10Name  string
11Phone string
12}
13func main() {
14fmt.Println("hello world")
15dialInfo := &mgo.DialInfo{
16Addrs:     []string{"*********.mongodb.gz.baidubce.com:27017", "*********.mongodb.gz.baidubce.com:27017"},
17Direct:    false,
18Timeout:   time.Second * 1,
19Database:  "admin",
20Source:    "admin",
21Username:  "root",
22Password:  "*********",
23}
24session, err := mgo.DialWithInfo(dialInfo)
25if err != nil {
26fmt.Printf("dial failed: %v",err)
27return
28}
29defer session.Close()
30
31session.SetMode(mgo.Monotonic, true)
32
33c := session.DB("test").C("test_collection")
34err = c.Insert(&Person{"Ale", "+55 53 8116 9639"},
35    &Person{"Cla", "+55 53 8402 8510"})
36if err != nil {
37    log.Fatal(err)
38}
39
40result := Person{}
41err = c.Find(bson.M{"name": "Ale"}).One(&result)
42if err != nil {
43    log.Fatal(err)
44}
45
46fmt.Println("Phone:", result.Phone)
47}

上一篇
通过MongoShell连接副本集实例
下一篇
数据备份