添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
奔跑的凳子  ·  quartz.dll bad image-掘金·  1 年前    · 
帅呆的韭菜  ·  基于JavaScript ...·  1 年前    · 
刀枪不入的开心果  ·  使用C++ REST ...·  1 年前    · 
耍酷的木瓜  ·  assembly - What ...·  1 年前    · 
  • 获取云数据库MongoDB副本集实例连接信息,如何获取,请参见 副本集实例连接说明
  • 将如下示例代码保存为Node.js。
    const MongoClient = require('mongodb').MongoClient;
    // 库名称和集合名称。
    const demoDb = "test";
    const demoColl = "testColl";
    // 建议使用副本集高可用地址,确保高可用。
    // 确保执行代码的服务器和MongoDB实例网络是连通的。
    // 如果密码中包含特殊字符,请进行转义处理。
    const url = "mongodb://root:****@dds-2ze043****.mongodb.rds.aliyuncs.com:3717,dds-2ze043****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-63****"
    console.info("url:", url);
    // 获取mongoClient。
    const client = new MongoClient(url);
    async function run() {
        try {
            //连接实例。
            await client.connect();
            //取得数据库句柄。
            const database = client.db(demoDb);
            //取得集合句柄。
            const collection = database.collection(demoColl);
            //组装记录。
            const demoName = "Node For Demo";
            const doc = { "DEMO": demoName, "MESG": "Hello AliCoudDB For MongoDB" };
            console.info("ready insert document: ", doc);
            //插入一条记录。
            const result = await collection.insertOne(doc);
            console.log(
                `A document was inserted with the _id: ${result.insertedId}`,
            //读取数据。
            const filter = { "DEMO": demoName };
            const findResult = await collection.find(filter);
            await findResult.forEach(console.dir);
          } finally {
              //关闭连接。
              await client.close();
    run().catch(console.dir);
                         
  • 运行node Node.js
  • PHP连接示例

    PHP驱动相关信息,请参见MongoDB PHP Driver

  • 执行如下命令,安装驱动包。
    $ pecl install mongodb
    # 获取PHP的ini文件路径。
    $ php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"
    # 在ini文件中添加如下信息,如果已经有则不用添加。
    $ extension=mongodb.so
    # 创建并进入工程目录。
    $ mkdir php-demo
    $ cd php-demo
    # 使用composer安装mongodb依赖。若未安装composer,可通过https://getcomposer.org/download/路径下载。
    $ composer require mongodb/mongodb
  • 获取云数据库MongoDB副本集实例连接信息,如何获取,请参见副本集实例连接说明
  • 将如下示例代码保存为main.php。
    <?php
    require 'vendor/autoload.php'; // include Composer goodies
    // 建议使用副本集高可用地址,确保高可用。
    // 确保执行代码的服务器和MongoDB实例网络是连通的。
    // 如果密码中包含特殊字符,请进行转义处理。
    $replicaset_url = 'mongodb://root:****@dds-2ze043****.mongodb.rds.aliyuncs.com:3717,dds-2ze043****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-63****';
    $test_db = 'test';
    $test_coll = 'testColl';
    // 创建mongoclient。
    $client = new MongoDB\Client($replicaset_url);
    $collection = $client->$test_db->$test_coll;
    // 插入一条记录。
    $result = $collection->insertOne(['name' => 'ApsaraDB for Mongodb', 'desc' => 'Hello, Mongodb']);
    echo "Inserted with Object ID '{$result->getInsertedId()}'", "\n";
    // 查询记录。
    $result = $collection->find(['name' => 'ApsaraDB for Mongodb']);
    foreach ($result as $entry) {
        echo $entry->_id, ': ', $entry->name, "\n";
                         
  • 运行php -f main.php
  • Java连接示例

    Java驱动相关信息,请参见MongoDB Java Driver

    本示例测试的环境为IDE(IntelliJ IDEA和Eclipse IDE)。IDE环境下连接副本集实例,JDK需为JDK 8及以上版本。

  • 获取云数据库MongoDB副本集实例连接信息,如何获取,请参见副本集实例连接说明
  • 添加Maven依赖。
    <dependencies>
            <dependency>
                <groupId>org.mongodb</groupId>
                <artifactId>mongodb-driver-sync</artifactId>
                <version>4.8.0</version>
            </dependency>
        </dependencies>
  • Java示例代码。
    // JDK 8及以上。
    import static com.mongodb.client.model.Filters.eq;
    import org.bson.Document;
    import com.mongodb.MongoException;
    import com.mongodb.client.MongoClient;
    import com.mongodb.client.MongoClients;
    import com.mongodb.client.MongoCollection;
    import com.mongodb.client.MongoDatabase;
    import com.mongodb.client.result.InsertOneResult;
    public class Main {
        public static void main( String[] args ) {
            // 建议使用副本集高可用地址,确保高可用。
            // 确保执行代码的服务器和MongoDB实例网络是连通的。
            // 如果密码中包含特殊字符,请进行转义处理。
            String uri = "mongodb://root:****@dds-2ze043****.mongodb.rds.aliyuncs.com:3717,dds-2ze043****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-63****";
            String demoDb = "test";
            String demoColl = "testColl";
            try (MongoClient mongoClient = MongoClients.create(uri)) {
                MongoDatabase database = mongoClient.getDatabase(demoDb);
                MongoCollection<Document> collection = database.getCollection(demoColl);
                // 写入一条记录。
                try {
                    InsertOneResult result = collection.insertOne(new Document()
                            .append("DEMO", "Java for Demo")
                            .append("MESG", "Hello AliCoudDB For MongoDB"));
                    System.out.println("Success! Inserted document id: " + result.getInsertedId());
                } catch (MongoException me) {
                    System.err.println("Unable to insert due to an error: " + me);
                // 查询第一条记录。
                Document doc = collection.find(eq("DEMO", "Java for Demo")).first();
                System.out.println(doc.toJson());
                mongoClient.close();
                         
  • 在IDE工具中单击运行。
  • Python连接示例

    Python驱动相关信息,请参见MongoDB Python Driver

    本示例测试的环境为Python 3.9。

  • 安装pymongo。
    pip install pymongo
  • 获取云数据库MongoDB副本集实例连接信息,如何获取,请参见副本集实例连接说明
  • 将如下示例代码保存为Main.py。
    # 代码运行环境为python3.9。
    from pymongo import MongoClient
    # 建议使用副本集高可用地址,确保高可用。
    # 确保执行代码的服务器和MongoDB实例网络是连通的。
    # 如果密码中包含特殊字符,请进行转义处理。
    REPLICASET_URL = 'mongodb://root:****@dds-2ze043****.mongodb.rds.aliyuncs.com:3717,dds-2ze043****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-63****'
    testDb = 'test'
    testColl = 'testColl'
    # 获取mongoclient。
    client = MongoClient(REPLICASET_URL)
    # 插入一条记录。
    doc = dict(DEMO="Python for demo", MESG="Hello ApsaraDB For MongoDB")
    doc_id = client.testDb.testColl.insert_one(doc).inserted_id
    print ('doc_id:', doc_id)
    # 查询记录。
    for d in client.testDb.testColl.find(dict(DEMO="Python for demo")):
        print ('find documents:', d)
    client.close()
  • 运行python3.9 Main.py
  • C#连接示例

    C#驱动相关信息,请参见MongoDB C# Driver

    本示例测试的环境为IDE(Visual Studio)。

  • 在Visual Studio中使用NuGet包管理工具(路径:项目 > 管理NuGet包)下载如下包。
    MongoDB.Driver
  • 获取云数据库MongoDB副本集实例连接信息,如何获取,请参见副本集实例连接说明
  • C#示例代码。
    using MongoDB.Bson;
    using MongoDB.Driver;
    using System;
    using System.Collections.Generic;
    namespace Aliyun
        class Program
            static void Main(string[] args)
                // 建议使用副本集高可用地址,确保高可用。
                // 确保执行脚本的机器和实例网络是通常的。
                // 如密码包含特殊字符,则需要转义。
                const string replicaSetUrl = "mongodb://root:****@dds-2ze043****.mongodb.rds.aliyuncs.com:3717,dds-2ze043****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-63****";
                const string testDb = "test";
                const string testColl = "testColl";
                    // 建立连接获取client。
                    MongoClient client = new MongoClient(replicaSetUrl);
                    // 获取集合。
                    var database = client.GetDatabase(testDb);
                    var collection = database.GetCollection<BsonDocument>(testColl);
                    // 插入一条记录。
                    var document = new BsonDocument
                                    { "name", "Csharp for Mongodb" },
                                    { "desc", "Hello ApsaraDB For MongoDB" }
                    collection.InsertOne(document);
                    Console.WriteLine("Insert done\n");
                    // 查询记录。
                    var cursor = collection.Find(new BsonDocument{ { "name", "Csharp for Mongodb" } }).ToCursor();
                    foreach (var doc in cursor.ToEnumerable())
                        Console.WriteLine(doc);
                catch (Exception e)
                    Console.WriteLine("连接异常:" + e.Message);
                         
  • 在IDE工具中单击运行。
  • Go连接示例

    Go驱动相关信息,请参见MongoDB Go Driver

  • 执行如下命令,安装驱动包。
    go get go.mongodb.org/mongo-driver
  • 获取云数据库MongoDB副本集实例连接信息,如何获取,请参见副本集实例连接说明
  • 将如下示例代码保存为main.go。
    package main
    import (
        "context"
        "fmt"
        "go.mongodb.org/mongo-driver/bson"
        "go.mongodb.org/mongo-driver/mongo"
        "go.mongodb.org/mongo-driver/mongo/options"
        "log"
    func main() {
        // 建议使用副本集高可用地址,确保高可用。
        // 确保执行代码的服务器和MongoDB实例网络是连通的。
        // 如果密码中包含特殊字符,请进行转义处理。
        replicaSetUrl := "mongodb://root:****@dds-2ze043****.mongodb.rds.aliyuncs.com:3717,dds-2ze043****.mongodb.rds.aliyuncs.com:3717/admin?replicaSet=mgset-63****"
        testDb := "test"
        testColl := "testColl"
        clientOpts := options.Client().ApplyURI(replicaSetUrl)
        // 连接Server,获取client。
        client, err := mongo.Connect(context.TODO(), clientOpts)
        if err != nil {
            fmt.Println("connect failed!")
            log.Fatal(err)
            return
        fmt.Println("connect successful!")
        // 结束时断开连接。
        defer func() {
            if err = client.Disconnect(context.TODO()); err != nil {
                fmt.Println("disconnect failed!")
                log.Fatal(err)
            fmt.Println("disconnect successful!")
        // 向Server发送Ping命令,验证连接成功。
        if err = client.Ping(context.TODO(), nil); err != nil {
            fmt.Println("ping failed!")
            log.Fatal(err)
            return
        fmt.Println("ping successful!")
        // 插入一条记录。
        collection := client.Database(testDb).Collection(testColl)
        res, err := collection.InsertOne(context.Background(), bson.M{"hello": "world"})
        if err != nil {
            fmt.Println("insert result failed!")
            log.Fatal(err)
            return
        id := res.InsertedID
        fmt.Println("Id: ", id)
        fmt.Printf("insert result: %v\n", res)
        // 查询记录。
        result := bson.M{}
        filter := bson.D{{"_id", res.InsertedID}}
        if err := collection.FindOne(context.Background(), filter).Decode(&result); err != nil {
            fmt.Println("find failed!")
            log.Fatal(err)
            return
        fmt.Printf("result: %v\n", result)
                         
  • 运行go run main.go
  •