Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ebben a rövid útmutatóban egy alapszintű Azure DocumentDB-alkalmazást hoz létre a Go használatával. Az Azure DocumentDB egy NoSQL-adattár, amellyel az alkalmazások a felhőben tárolhatják a dokumentumokat, és hivatalos MongoDB-illesztőprogramokkal érhetik el őket. Ez az útmutató bemutatja, hogyan hozhat létre dokumentumokat, és hogyan hajthat végre alapvető feladatokat az Azure DocumentDB-fürtben a Go használatával.
API-referencia | Forráskód | Csomag (Go)
Előfeltételek
Azure-előfizetés
- Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy ingyenes fiókot
- Golang 1.18 vagy újabb
Hozzon létre egy Azure DocumentDB-fürtöt
Első lépésként létre kell hoznia egy Azure DocumentDB-fürtöt, amely a NoSQL-adatok tárolásának és kezelésének alapja.
Jelentkezzen be az Azure Portalra (https://portal.azure.com).
Az Azure Portal menüjében vagy a Kezdőlapon válassza az Erőforrás létrehozása elemet.
Az Új lapon keresse meg és válassza ki az Azure DocumentDB-t.
Az Azure DocumentDB-fürt létrehozása oldal Alapok szakaszában válassza a Fürtszint szakaszban a Konfigurálás lehetőséget.
A Méretezés lapon konfigurálja ezeket a beállításokat, majd válassza a Mentés lehetőséget a fürtszintre vonatkozó módosítások megőrzéséhez.
Érték Fürtszint M30 tier, 2 vCore, 8-GiB RAMTárterület szegmensenként 128 GiB
Az Alapok szakaszban konfigurálja a következő beállításokat:
Érték Subscription Az Azure-előfizetés kiválasztása Erőforráscsoport Új erőforráscsoport létrehozása vagy meglévő erőforráscsoport kiválasztása Fürt neve Globálisan egyedi név megadása Location Válasszon egy támogatott Azure-régiót az előfizetéséhez MongoDB-verzió A következők szerint válasszon: 8.0Rendszergazdai felhasználónév Felhasználónév létrehozása a fürt felhasználói rendszergazdaként való eléréséhez Jelszó A felhasználónévhez társított egyedi jelszó használata
Jótanács
Jegyezze fel a felhasználónévhez és jelszóhoz használt értékeket. Ezeket az értékeket az útmutató későbbi részében használjuk. Az érvényes értékekkel kapcsolatos további információkért tekintse meg a fürt korlátait.
Válassza ki a Tovább: Hálózatkezelés lehetőséget.
A Hálózatkezelés lap Tűzfalszabályok szakaszában konfigurálja az alábbi beállításokat:
Érték Kapcsolati módszer Public accessNyilvános hozzáférés engedélyezése az Azure-ban lévő Azure-szolgáltatásokból és erőforrásokból ehhez a fürthöz Engedélyezett Adjon hozzá egy tűzfalszabályt a jelenlegi klienseszközhöz, hogy hozzáférést biztosítson a fürthöz a + Jelenlegi kliens IP-cím hozzáadása lehetőség kiválasztásával.
Jótanács
Számos vállalati környezetben a fejlesztői gép IP-címei vpn vagy más vállalati hálózati beállítások miatt rejtve vannak. Ezekben az esetekben ideiglenesen engedélyezheti az összes IP-cím elérését az
0.0.0.0-255.255.255.255IP-címtartomány tűzfalszabályként való hozzáadásával. Ezt a tűzfalszabályt csak ideiglenesen használja a kapcsolattesztelés és -fejlesztés részeként.Válassza az Áttekintés + létrehozás lehetőséget.
Tekintse át a megadott beállításokat, majd kattintson a Létrehozás-ra. A klaszter létrehozása néhány percet vesz igénybe. Várjon, amíg az erőforrás üzembe helyezése befejeződött.
Végül válassza a Menjen az erőforráshoz lehetőséget, hogy navigáljon az Azure DocumentDB-fürthöz a portálon.
Szerezze be a fürt hitelesítő adatait
Szerezd be a fürthöz való csatlakozáshoz használt hitelesítő adatokat.
A fürtoldalon válassza a Kapcsolati láncokat lehetőséget az erőforrás menüjében.
A Kapcsolati sztringek szakaszban másolja vagy rögzítse a Kapcsolati sztring mező értékét.
Fontos
A portál kapcsolati sztringje nem tartalmazza a jelszó értékét. A <password> helyettesítő szöveget le kell cserélnie a fürt létrehozásakor megadott hitelesítő adatokkal, vagy interaktívan be kell írnia a jelszót.
A projekt inicializálása
Hozzon létre egy új Go modult az aktuális könyvtárban.
Kezdje egy üres mappában.
Nyisson egy terminált az aktuális könyvtárban.
Inicializáljon egy új Go-modult.
go mod init azure-documentdb-go-quickstart
Telepítse a klienskönyvtárat
Az ügyfélkódtár a Go-on keresztül érhető el modulként go.mongodb.org/mongo-driver/v2/mongo .
Telepítse a MongoDB Go illesztőprogramot a
go gethasználatával.go get go.mongodb.org/mongo-driver/v2/mongoHozzon létre egy új Go-fájlt az alkalmazáskódhoz.
main.goImportálja a szükséges csomagokat az alkalmazás kódjába:
import ( "context" "fmt" "log" "time" "go.mongodb.org/mongo-driver/v2/bson" "go.mongodb.org/mongo-driver/v2/mongo" "go.mongodb.org/mongo-driver/v2/mongo/options" )
Objektummodell
| Név | Description |
|---|---|
mongo.Client |
A MongoDB-hez való csatlakozáshoz használt típus. |
mongo.Database |
Egy adatbázist jelöl a klaszterben. |
mongo.Collection |
Egy adatbázison belüli gyűjteményt jelöl a fürtben. |
Példakódok
- Az ügyfél hitelesítése
- Gyűjtemény lekérése
- Dokumentum létrehozása
- Dokumentum lekérése
- Dokumentumok lekérdezése
Az alkalmazás kódja egy elnevezett adventureworks adatbázishoz és egy nevű productsgyűjteményhez csatlakozik. A products gyűjtemény olyan részleteket tartalmaz, mint a név, a kategória, a mennyiség, az egyedi azonosító és az egyes termékekhez tartozó értékesítési jelző. Az itt található kódminták a leggyakoribb műveleteket hajtják végre a gyűjtemények használatakor.
Az ügyfél hitelesítése
Először csatlakozzon az ügyfélhez egy egyszerű kapcsolati sztring használatával.
Hozza létre a fő függvényt, és állítsa be a kapcsolati sztringet. Cserélje le
<your-cluster-name>,<your-username>és<your-password>a tényleges fürtinformációkkal.func main() { // Connection string for Azure DocumentDB cluster connectionString := "mongodb+srv://<your-username>:<your-password>@<your-cluster-name>.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000" // Create client options clientOptions := options.Client().ApplyURI(connectionString)Csatlakozzon a MongoDB-ügyfélhez, és ellenőrizze a kapcsolatot.
// Create a new client and connect to the server ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) defer cancel() client, err := mongo.Connect(ctx, clientOptions) if err != nil { log.Fatal(err) } defer client.Disconnect(ctx) // Ping the primary err = client.Ping(ctx, nil) if err != nil { log.Fatal(err) } fmt.Println("Successfully connected and pinged Azure DocumentDB")
Gyűjtemény lekérése
Most szerezze be az adatbázist és a gyűjteményt. Ha az adatbázis és a gyűjtemény még nem létezik, az illesztővel automatikusan létrehozhatja.
Az adatbázisra mutató hivatkozás lekérése.
// Get database reference database := client.Database("adventureworks") fmt.Println("Connected to database:", database.Name())Az adatbázison belüli gyűjteményre mutató hivatkozás lekérése.
// Get collection reference collection := database.Collection("products") fmt.Println("Connected to collection:", collection.Name())
Dokumentum létrehozása
Ezután hozzon létre néhány új dokumentumot a gyűjteményben. A dokumentumokat úgy állíthatja be, hogy az lecserélje a meglévő dokumentumokat, ha már léteznek ugyanazzal az egyedi azonosítóval.
Definiáljon egy terméktípust, és hozzon létre minta termékdokumentumokat.
type Product struct { ID string `bson:"_id,omitempty"` Name string `bson:"name"` Category string `bson:"category"` Quantity int `bson:"quantity"` Price float64 `bson:"price"` Sale bool `bson:"sale"` } // Create sample products products := []Product{ { ID: "00000000-0000-0000-0000-000000004018", Name: "Windry Mittens", Category: "apparel-accessories-gloves-and-mittens", Quantity: 121, Price: 35.00, Sale: false, }, { ID: "00000000-0000-0000-0000-000000004318", Name: "Niborio Tent", Category: "gear-camp-tents", Quantity: 140, Price: 420.00, Sale: true, }, }Helyezze be a dokumentumokat "upsert" műveletek használatával.
// Insert documents with upsert for _, product := range products { filter := bson.M{"_id": product.ID} update := bson.M{"$set": product} opts := options.Update().SetUpsert(true) result, err := collection.UpdateOne(ctx, filter, update, opts) if err != nil { log.Fatal(err) } if result.UpsertedID != nil { fmt.Printf("Inserted document with ID: %v\n", result.UpsertedID) } else { fmt.Printf("Updated document with ID: %s\n", product.ID) } }
Dokumentum lekérése
Ezután végezzen pontolvasási műveletet egy adott dokumentum gyűjteményből való lekéréséhez.
Adja meg a szűrőt egy adott dokumentum azonosító alapján való megkereséséhez.
// Retrieve a specific document by ID filter := bson.M{"_id": "00000000-0000-0000-0000-000000004018"} var retrievedProduct ProductHajtsa végre a lekérdezést, és dekódolja az eredményt.
err = collection.FindOne(ctx, filter).Decode(&retrievedProduct) if err != nil { log.Fatal(err) } fmt.Printf("Retrieved product: %+v\n", retrievedProduct)
Dokumentumok lekérdezése
Végül több dokumentumot is lekérdezhet a MongoDB lekérdezési nyelv (MQL) használatával.
Lekérdezés definiálása adott feltételeknek megfelelő dokumentumok megkereséséhez.
// Query for products on sale queryFilter := bson.M{"sale": true} cursor, err := collection.Find(ctx, queryFilter) if err != nil { log.Fatal(err) } defer cursor.Close(ctx)Az összes egyező dokumentum lekéréséhez iterálja végig a kurzort.
fmt.Println("Products on sale:") for cursor.Next(ctx) { var product Product if err := cursor.Decode(&product); err != nil { log.Fatal(err) } fmt.Printf("- %s: $%.2f (Category: %s)\n", product.Name, product.Price, product.Category) } if err := cursor.Err(); err != nil { log.Fatal(err) } }
Adatok felfedezése a Visual Studio Code használatával
A Visual Studio Code DocumentDB bővítményével alapvető adatbázis-műveleteket hajthat végre, beleértve az adatok lekérdezését, beszúrását, frissítését és törlését.
Nyissa meg a Visual Studio Code-ot.
Lépjen a Bővítmények nézetre, és keresse meg a kifejezést
DocumentDB. Keresse meg a DocumentDB for VS Code bővítményt .Válassza a bővítmény Telepítés gombját. Várja meg, amíg a telepítés befejeződik. Töltse újra a Visual Studio kódot, ha erre felszólítják.
Lépjen a DocumentDB bővítményre a tevékenységsáv megfelelő ikonjának kiválasztásával.
A DocumentDB-kapcsolatok panelen válassza az + Új kapcsolat... lehetőséget.
A párbeszédpanelen válassza a Service Discovery , majd az Azure DocumentDB – Azure Service Discovery lehetőséget.
Válassza ki az Azure-előfizetését és az újonnan létrehozott Azure DocumentDB-fürtöt.
Jótanács
Számos vállalati környezetben a fejlesztői gép IP-címei vpn vagy más vállalati hálózati beállítások miatt rejtve vannak. Ezekben az esetekben ideiglenesen engedélyezheti az összes IP-cím elérését az
0.0.0.0-255.255.255.255IP-címtartomány tűzfalszabályként való hozzáadásával. Ezt a tűzfalszabályt csak ideiglenesen használja a kapcsolattesztelés és -fejlesztés részeként. További információ: tűzfal konfigurálása.Visszatérve a DocumentDB-kapcsolatok panelre, bontsa ki a fürt csomópontját, és keresse meg a meglévő dokumentum- és gyűjteménycsomópontokat.
Nyissa meg a gyűjtemény helyi menüjét, majd válassza a DocumentDB Scrapbook > New DocumentDB Scrapbook lehetőséget.
Adja meg a következő MongoDB lekérdezési nyelv (MQL) parancsokat, majd válassza az Összes futtatása lehetőséget. Figyelje meg a parancsok kimenetét.
db.products.find({ price: { $gt: 200 }, sale: true }) .sort({ price: -1 }) .limit(3)
Erőforrások tisztítása
Ha végzett az Azure DocumentDB-fürttel, törölheti a létrehozott Azure-erőforrásokat, így nem kell további díjakat fizetnie.
Az Azure Portal keresősávján keresse meg és válassza ki az erőforráscsoportokat.
A listában válassza ki a rövid útmutatóhoz használt erőforráscsoportot.
Az erőforráscsoport lapján válassza az Erőforráscsoport törlése lehetőséget.
A törlés megerősítését kérő párbeszédpanelen adja meg az erőforráscsoport nevét annak megerősítéséhez, hogy törölni kívánja azt. Végül válassza a Törlés lehetőséget az erőforráscsoport végleges törléséhez.