ApsaraDB for MongoDB sepenuhnya kompatibel dengan protokol MongoDB. Topik ini menjelaskan contoh kode untuk menghubungkan ke instance replika set dalam berbagai bahasa pemrograman.
Prasyarat
Pastikan paket driver resmi untuk bahasa yang digunakan telah diunduh dan diinstal. Untuk informasi lebih lanjut, kunjungi MongoDB Drivers.
Catatan Penggunaan
Jika kata sandi instance replika set mengandung karakter khusus (! @ # $ % ^ & * ( ) _ + =), Anda harus melarikan karakter tersebut dalam string koneksi. Tabel berikut mencantumkan pemetaan antara karakter khusus dan karakter pelarian.
Karakter Khusus | Karakter Pelarian |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Sebagai contoh, jika kata sandi asli adalah ab@#c, kata sandi dalam string koneksi diubah menjadi ab%40%23c.
Menggunakan Node.js untuk menghubungkan ke instance replika set
Untuk informasi lebih lanjut tentang Node.js Driver untuk MongoDB, lihat MongoDB Node.js Driver.
Jalankan perintah berikut di klien untuk menginisialisasi proyek:
mkdir node-mongodb-demo cd node-mongodb-demo npm init -yJalankan perintah berikut untuk menginstal paket driver:
npm install mongodbDapatkan informasi yang digunakan untuk menghubungkan ke instance replika set. Untuk informasi lebih lanjut, lihat Menghubungkan ke Instance Replika Set.
Simpan kode contoh berikut sebagai Node.js:
const MongoClient = require('mongodb').MongoClient; // Nama database dan nama koleksi. const demoDb = "test"; const demoColl = "testColl"; // Untuk memastikan ketersediaan tinggi, kami sarankan Anda menggunakan URI string koneksi dari instance replika set. // Pastikan server tempat kode dieksekusi dapat terhubung ke instance ApsaraDB for MongoDB. // Lakukan pelarian karakter khusus jika kata sandi mengandung karakter khusus. 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); // Dapatkan MongoClient. const client = new MongoClient(url); async function run() { try { // Hubungkan ke instance. await client.connect(); // Dapatkan handle database. const database = client.db(demoDb); // Dapatkan handle koleksi. const collection = database.collection(demoColl); // Rakit sebuah rekaman. const demoName = "Node For Demo"; const doc = { "DEMO": demoName, "MESG": "Hello AliCloudDB For MongoDB" }; console.info("siap menyisipkan dokumen: ", doc); // Sisipkan sebuah rekaman. const result = await collection.insertOne(doc); console.log( `Sebuah dokumen telah disisipkan dengan _id: ${result.insertedId}`, ); // Baca data. const filter = { "DEMO": demoName }; const findResult = await collection.find(filter); await findResult.forEach(console.dir); } finally { // Tutup koneksi. await client.close(); } } run().catch(console.dir);Jalankan perintah
node Node.js.
Menggunakan PHP untuk menghubungkan ke instance replika set
Untuk informasi lebih lanjut tentang PHP Driver untuk MongoDB, lihat MongoDB PHP Driver.
Jalankan perintah berikut untuk menginstal paket driver:
$ pecl install mongodb # Dapatkan jalur file INI PHP. $ php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||" # Tambahkan informasi berikut ke file INI. Lewati langkah ini jika sudah ada. $ extension=mongodb.so # Buat direktori proyek dan akses. $ mkdir php-demo $ cd php-demo # Gunakan composer untuk menginstal dependensi MongoDB. Jika composer belum diinstal, Anda bisa mengunduhnya di https://getcomposer.org/download. $ composer require mongodb/mongodbDapatkan informasi yang digunakan untuk menghubungkan ke instance replika set. Untuk informasi lebih lanjut, lihat Menghubungkan ke Instance Replika Set.
Simpan kode contoh berikut sebagai main.php:
<?php require 'vendor/autoload.php'; // include Composer goodies // Untuk memastikan ketersediaan tinggi, kami sarankan Anda menggunakan URI string koneksi dari instance replika set. // Pastikan server tempat kode dieksekusi dapat terhubung ke instance ApsaraDB for MongoDB. // Lakukan pelarian karakter khusus jika kata sandi mengandung karakter khusus. $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'; // Buat MongoClient. $client = new MongoDB\Client($replicaset_url); $collection = $client->$test_db->$test_coll; // Sisipkan sebuah rekaman. $result = $collection->insertOne(['name' => 'ApsaraDB for Mongodb', 'desc' => 'Hello, Mongodb']); echo "Disisipkan dengan Object ID '{$result->getInsertedId()}'", "\n"; // Query rekaman. $result = $collection->find(['name' => 'ApsaraDB for Mongodb']); foreach ($result as $entry) { echo $entry->_id, ': ', $entry->name, "\n"; } ?>Jalankan perintah
php -f main.php.
Menggunakan Java untuk menghubungkan ke instance replika set
Untuk informasi lebih lanjut tentang Java Driver untuk MongoDB, lihat MongoDB Java Driver.
IDE (IntelliJ IDEA dan Eclipse IDE) digunakan dalam contoh. Untuk menghubungkan ke instance replika set dalam lingkungan IDE, JDK harus versi 8 atau lebih baru.
Dapatkan informasi yang digunakan untuk menghubungkan ke instance replika set. Untuk informasi lebih lanjut, lihat Menghubungkan ke Instance Replika Set.
Tambahkan dependensi Maven.
<dependencies> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.8.0</version> </dependency> </dependencies>Gunakan kode contoh Java berikut.
CatatanKode berikut memberikan contoh cara mengonfigurasi manual koneksi ke instance ApsaraDB for MongoDB. Jika Anda menggunakan konfigurasi ini dalam proyek Spring Boot, kami sarankan menambahkan
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration,class})untuk menonaktifkan konfigurasi otomatis. Ini mencegah kegagalan koneksi karena konflik konfigurasi.// JDK 8 atau lebih baru. 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 ) { // Untuk memastikan ketersediaan tinggi, kami sarankan Anda menggunakan URI string koneksi dari instance replika set. // Pastikan server tempat kode dieksekusi dapat terhubung ke instance ApsaraDB for MongoDB. // Lakukan pelarian karakter khusus jika kata sandi mengandung karakter khusus. 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); // Sisipkan sebuah rekaman. try { InsertOneResult result = collection.insertOne(new Document() .append("DEMO", "Java for Demo") .append("MESG", "Hello AliCloudDB For MongoDB")); System.out.println("Berhasil! Disisipkan dokumen id: " + result.getInsertedId()); } catch (MongoException me) { System.err.println("Tidak dapat menyisipkan karena kesalahan: " + me); } // Query rekaman pertama. Document doc = collection.find(eq("DEMO", "Java for Demo")).first(); System.out.println(doc.toJson()); mongoClient.close(); } } }Di alat IDE, klik Run.
Menggunakan Python untuk menghubungkan ke instance replika set
Untuk informasi lebih lanjut tentang Python Driver untuk MongoDB, lihat MongoDB Python Driver.
Python 3.9 digunakan dalam contoh.
Instal PyMongo.
pip install pymongoDapatkan informasi yang digunakan untuk menghubungkan ke instance replika set. Untuk informasi lebih lanjut, lihat Menghubungkan ke Instance Replika Set.
Simpan kode contoh berikut sebagai Main.py:
# Python 3.9 digunakan untuk menjalankan kode. from pymongo import MongoClient # Untuk memastikan ketersediaan tinggi, kami sarankan Anda menggunakan URI string koneksi dari instance replika set. # Pastikan server tempat kode dieksekusi dapat terhubung ke instance ApsaraDB for MongoDB. # Lakukan pelarian karakter khusus jika kata sandi mengandung karakter khusus. 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' # Dapatkan MongoClient. client = MongoClient(REPLICASET_URL) # Sisipkan sebuah rekaman. 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) # Query rekaman. for d in client.testDb.testColl.find(dict(DEMO="Python for demo")): print ('temukan dokumen:', d) client.close()Jalankan perintah
python3.9 Main.py.
Menggunakan C# untuk menghubungkan ke instance replika set
Untuk informasi lebih lanjut tentang C# Driver untuk MongoDB, lihat MongoDB C# Driver.
IDE (Visual Studio) digunakan dalam contoh.
Gunakan alat manajemen paket NuGet di Visual Studio () untuk mengunduh paket berikut:
MongoDB.DriverDapatkan informasi yang digunakan untuk menghubungkan ke instance replika set. Untuk informasi lebih lanjut, lihat Menghubungkan ke Instance Replika Set.
Gunakan kode contoh C# berikut:
using MongoDB.Bson; using MongoDB.Driver; using System; using System.Collections.Generic; namespace Aliyun { class Program { static void Main(string[] args) { // Untuk memastikan ketersediaan tinggi, kami sarankan Anda menggunakan URI string koneksi dari instance replika set. // Pastikan server tempat kode dieksekusi dapat terhubung ke instance ApsaraDB for MongoDB. // Lakukan pelarian karakter khusus jika kata sandi mengandung karakter khusus. 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"; try { // Hubungkan ke server dan dapatkan klien. MongoClient client = new MongoClient(replicaSetUrl); // Dapatkan koleksi. var database = client.GetDatabase(testDb); var collection = database.GetCollection<BsonDocument>(testColl); // Sisipkan sebuah rekaman. var document = new BsonDocument { { "name", "Csharp for Mongodb" }, { "desc", "Hello ApsaraDB For MongoDB" } }; collection.InsertOne(document); Console.WriteLine("Sisipkan selesai\n"); // Query rekaman. 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("koneksi gagal:" + e.Message); } } } }Di alat IDE, klik Run.
Menggunakan Go untuk menghubungkan ke instance replika set
Untuk informasi lebih lanjut tentang Go Driver untuk MongoDB, lihat MongoDB Go Driver.
Jalankan perintah berikut untuk menginstal paket driver:
go get go.mongodb.org/mongo-driverDapatkan informasi yang digunakan untuk menghubungkan ke instance replika set. Untuk informasi lebih lanjut, lihat Menghubungkan ke Instance Replika Set.
Simpan kode contoh berikut sebagai 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() { // Untuk memastikan ketersediaan tinggi, kami sarankan Anda menggunakan URI string koneksi dari instance replika set. // Pastikan server tempat kode dieksekusi dapat terhubung ke instance ApsaraDB for MongoDB. // Lakukan pelarian karakter khusus jika kata sandi mengandung karakter khusus. 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) // Hubungkan ke server dan dapatkan klien. client, err := mongo.Connect(context.TODO(), clientOpts) if err != nil { fmt.Println("koneksi gagal!") log.Fatal(err) return } fmt.Println("koneksi berhasil!") // Tutup koneksi. defer func() { if err = client.Disconnect(context.TODO()); err != nil { fmt.Println("pemutusan gagal!") log.Fatal(err) } fmt.Println("pemutusan berhasil!") }() // Ping server untuk memverifikasi bahwa koneksi berhasil. if err = client.Ping(context.TODO(), nil); err != nil { fmt.Println("ping gagal!") log.Fatal(err) return } fmt.Println("ping berhasil!") // Sisipkan sebuah rekaman. collection := client.Database(testDb).Collection(testColl) res, err := collection.InsertOne(context.Background(), bson.M{"hello": "world"}) if err != nil { fmt.Println("hasil sisipan gagal!") log.Fatal(err) return } id := res.InsertedID fmt.Println("Id: ", id) fmt.Printf("hasil sisipan: %v\n", res) // Query rekaman. result := bson.M{} filter := bson.D{{"_id", res.InsertedID}} if err := collection.FindOne(context.Background(), filter).Decode(&result); err != nil { fmt.Println("pencarian gagal!") log.Fatal(err) return } fmt.Printf("hasil: %v\n", result) }Jalankan perintah
go run main.go.