関連リンク
- MongoDB Drivers
- Connection String URI Format
注 本ドキュメントの接続サンプルコードは、Alibaba Cloud が提供するイントラネットアドレスを使用して ApsaraDB for MongoDB に接続する場合にのみ適用されます。
Node.js
関連リンク:MongoDB Node.js Driver
- プロジェクトを初期化します。
mkdir node-mongodb-demo cd node-mongodb-demo npm init
- driver パッケージとツールキットをインストールします。
npm install mongodb node-uuid sprintf-js –save
- ApsaraDB for MongoDB インスタンスに接続するための必要な情報を取得します。
詳細は、レプリカセットインスタンスの接続情報の取得 をご参照ください.
- 次の Node.js サンプルコードを使用します。
'use strict'; var uuid = require('node-uuid'); var sprintf = require("sprintf-js").sprintf; var mongoClient = require('mongodb').MongoClient; var host1 = "demotest-1.mongodb.tbc3.newtest.rdstest.aliyun-inc.com"; var port1 = 27017; var host2 = "demotest-2.mongodb.tbc3.newtest.rdstest.aliyun-inc.com"; var port2 = 27017; var username = "demouser"; var password = "123456"; var replSetName = "mgset-1441984991"; var demoDb = "test"; var demoColl = "testColl"; // 公式推奨されている解決策。 var url = sprintf("mongodb://%s:%d,%s:%d/%s?replicaSet=%s", host1, port1, host2, port2, demoDb, replSetName); console.info("url:", url); // MongoClient を取得します。 mongoClient.connect(url, function (err, db) { if (err) { console.error("connect err:", err); return 1; } // ApsaraDB for MongoDB へのログインに使用されるユーザー名とパスワードを認証します。 このサンプルコードのユーザー名は、admin データベースにログインするために使用されます。 var adminDb = db.admin(); adminDb.authenticate(username, password, function (err, result) { if (err) { console.error("authenticate err:", err); return 1; } // collection ハンドルを取得します。 var collection = db.collection(demoColl); var demoName = "NODE:" + uuid.v1(); var doc = { "DEMO": demoName, "MESG": "Hello AliCoudDB For MongoDB" }; console.info("ready insert document: ", doc); // データを挿入します。 collection.insertOne(doc, function (err, data) { if (err) { console.error("insert err:", err); return 1; } console.info("insert result:", data["result"]); // データを読み取ります。 var filter = {"DEMO":demoName}; collection.find(filter).toArray(function (err, items) { if (err) { console.error("find err:", err); return 1; } console.info("find document: ", items); // クライアントをオフにしてリソースを解放します。 db.close(); }); }); }); });
PHP
関連リンク:
- driver パッケージとツールキットをインストールします。
$ pecl install mongodb $ echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"` $ composer require "mongodb/mongodb=^1.0.0"
- ApsaraDB for MongoDB インスタンスに接続するために必要な情報を取得します。
詳細は、レプリカセットインスタンスの接続情報の取得 をご参照ください.
- 次の PHP サンプルコードを使用します。
<?php require 'vendor/autoload.php'; // include Composer goodies # インスタンス情報を指定します。 $demo_seed1 = 'demotest-1.mongodb.test.aliyun-inc.com:3717'; $demo_seed2 = 'demotest-2.mongodb.test.aliyun-inc.com:3717'; $demo_replname = "mgset-1441984463"; $demo_user = 'root'; $demo_password = '123456'; $demo_db = 'admin'; #インスタンス情報に基づいて MongoDB connection string URI を構築します。 # mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] $demo_uri = 'mongodb://' . $demo_user . ':' . $demo_password . '@' . $demo_seed1 . ',' . $demo_seed2 . '/' . $demo_db . '?replicaSet=' . $demo_replname; $client = new MongoDB\Client($demo_uri); $collection = $client->testDb->testColl; $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"; } ?>
Java
関連リンク:
- ApsaraDB for MongoDB インスタンスに接続するために必要な情報を取得します。
詳細は、レプリカセットインスタンスの接続情報の取得 をご参照ください.
- 次の Java サンプルコードを使用します。
- Maven の構成
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.0.4</version> </dependency> </dependencies>
- Java code
import java.util.ArrayList; import java.util.List; import java.util.UUID; import org.bson.BsonDocument; import org.bson.BsonString; import org.bson.Document; import com.mongodb.MongoClient; import com.mongodb.MongoClientOptions; import com.mongodb.MongoClientURI; import com.mongodb.MongoCredential; import com.mongodb.ServerAddress; import com.mongodb.client.MongoCollection; import com.mongodb.client.MongoCursor; import com.mongodb.client.MongoDatabase; public class Main { public static ServerAddress seed1 = new ServerAddress("demotest-1.mongodb.tbc3.newtest.rdstest.aliyun-inc.com", 27017); public static ServerAddress seed2 = new ServerAddress("demotest-2.mongodb.tbc3.newtest.rdstest.aliyun-inc.com", 27017); public static String username = "demouser"; public static String password = "123456"; public static String ReplSetName = "mgset-1441984463"; public static String DEFAULT_DB = "admin"; public static String DEMO_DB = "test"; public static String DEMO_COLL = "testColl"; public static MongoClient createMongoDBClient() { // seed リストを構築します。 List<ServerAddress> seedList = new ArrayList<ServerAddress>(); seedList.add(seed1); seedList.add(seed2); // 認証情報を作成します。 List<MongoCredential> credentials = new ArrayList<MongoCredential>(); credentials.add(MongoCredential.createScramSha1Credential(username, DEFAULT_DB, password.toCharArray())); // 操作オプションを構築します。 Configure options other than requiredReplicaSetName based on your actual requirements. Default parameter settings can meet requirements in most scenarios. MongoClientOptions options = MongoClientOptions.builder().requiredReplicaSetName(ReplSetName) .socketTimeout(2000).connectionsPerHost(1).build(); return new MongoClient(seedList, credentials, options); } public static MongoClient createMongoDBClientWithURI() { // MongoClient を初期化するために URI を使用します。 // mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] MongoClientURI connectionString = new MongoClientURI("mongodb://" + username + ":" + password + "@" + seed1 + "," + seed2 + "/" + DEFAULT_DB + "?replicaSet=" + ReplSetName); return new MongoClient(connectionString); } public static void main(String args []){ MongoClient client = createMongoDBClient(); // or // MongoClient client = createMongoDBClientWithURI(); try { // collection ハンドルを取得します。 MongoDatabase database = client.getDatabase(DEMO_DB); MongoCollection<Document> collection = database.getCollection(DEMO_COLL); // データを挿入します。 Document doc = new Document(); String demoname = "JAVA:" + UUID.randomUUID(); doc.append("DEMO", demoname); doc.append("MESG", "Hello AliCoudDB For MongoDB"); collection.insertOne(doc); System.out.println("insert document: " + doc); // データを読み取ります。 BsonDocument filter = new BsonDocument(); filter.append("DEMO", new BsonString(demoname)); MongoCursor<Document> cursor = collection.find(filter).iterator(); while (cursor.hasNext()) { System.out.println("find document: " + cursor.next()); } } finally { // クライアントをオフにしてリソースを解放します。 client.close(); } return; } }
- Maven の構成
Python
関連リンク:
- PyMongo をインストールします。
pip install pymongo
- ApsaraDB for MongoDB インスタンスに接続するために必要な情報を取得します。
詳細は、レプリカセットインスタンスの接続情報の取得 をご参照ください.
- 次の Python サンプルコードを使用します。
import uuid from pymongo import MongoClient # インスタンスのプライマリノードとセカンダリノードに接続するための 2 つのアドレスを指定します。 CONN_ADDR1 = 'demotest-1.mongodb.tbc3.newtest.rdstest.aliyun-inc.com:27017' CONN_ADDR2 = 'demotest-2.mongodb.tbc3.newtest.rdstest.aliyun-inc.com:27017' REPLICAT_SET = 'mgset-1441984463' username = 'demouser' password = '123456' # MongoClient を取得します。 client = MongoClient([CONN_ADDR1, CONN_ADDR2], replicaSet=REPLICAT_SET) # ApsaraDB for MongoDB にログインするために使用されるユーザー名とパスワードを認証します。 このサンプルコードのユーザー名は、admin データベースにログインするために使用されます。 client.admin.authenticate(username, password) # 例としてテストデータベースの collection:testColl を使用します。 doc を挿入し、DEMO 名に基づいてドキュメントを検索します。 demo_name = 'python-' + str(uuid.uuid1()) print 'demo_name:', demo_name doc = dict(DEMO=demo_name, MESG="Hello ApsaraDB For MongoDB") doc_id = client.test.testColl.insert(doc) print 'doc_id:', doc_id for d in client.test.testColl.find(dict(DEMO=demo_name)): print 'find documents:', d