Hızlı Başlangıç: C için MongoDB sürücüsüyle Azure DocumentDB kullanma#

Bu hızlı başlangıçta C# kullanarak temel bir Azure DocumentDB uygulaması oluşturacaksınız. Azure DocumentDB, uygulamaların belgeleri bulutta depolamasına ve resmi MongoDB sürücülerini kullanarak bunlara erişmesine olanak tanıyan bir NoSQL veri deposudur. Bu kılavuz, C# kullanarak Azure DocumentDB kümenizde belge oluşturmayı ve temel görevleri gerçekleştirmeyi gösterir.

API başvurusu | Kaynak kodu | Paket (NuGet)

Prerequisites

  • .NET 10.0 veya üzeri

Azure DocumentDB kümesi oluşturma

Başlamak için öncelikle NoSQL verilerinizi depolamak ve yönetmek için temel görevi görecek bir Azure DocumentDB kümesi oluşturmanız gerekir.

  1. Azure portalında (https://portal.azure.com ) oturum açın.

  2. Azure portalı menüsünde veya Giriş sayfasında Kaynak oluştur'u seçin.

  3. Yeni sayfasında Azure DocumentDB'yi arayın ve seçin.

    Azure DocumentDB aramasını gösteren ekran görüntüsü.

  4. Azure DocumentDB kümesi oluştur sayfasında ve Temel bilgiler bölümünde Küme katmanı bölümünde Yapılandır seçeneğini belirleyin.

    Kümeyi yapılandır seçeneğini gösteren ekran görüntüsü.

  5. Ölçek sayfasında, bu seçenekleri yapılandırın ve ardından kaydet'i seçerek değişikliklerinizi küme katmanında kalıcı hale getirmek için.

    Value
    Küme katmanı M30 tier, 2 vCore, 8-GiB RAM
    Parça başına depolama 128 GiB

    Yeni bir Azure DocumentDB kümesi için işlem ve depolama yapılandırma seçeneklerinin ekran görüntüsü.

  6. Temel bilgiler bölümüne geri dönüp aşağıdaki seçenekleri yapılandırın:

    Value
    Abonelik Azure aboneliğinizi seçin
    Kaynak Grubu Yeni kaynak grubu oluşturma veya var olan bir kaynak grubunu seçme
    Küme adı Genel olarak benzersiz bir ad sağlayın
    Konum Aboneliğiniz için desteklenen bir Azure bölgesi seçin
    MongoDB sürümü 8.0 seçeneğini belirleyin
    Yönetici kullanıcı adı Kullanıcı yöneticisi olarak kümeye erişmek için kullanıcı adı oluşturma
    Parola Kullanıcı adıyla ilişkilendirilmiş benzersiz bir parola kullanın

    Küme parametrelerini gösteren ekran görüntüsü.

    Tip

    Kullanıcı adı ve parola için kullandığınız değerleri kaydedin. Bu değerler bu kılavuzun devamında kullanılır. Geçerli değerler hakkında daha fazla bilgi için bkz. küme sınırlamaları.

  7. İleri: Ağ'ı seçin.

  8. Güvenlik duvarı kuralları bölümünde sekmesindeki şu seçenekleri yapılandırın:

    Value
    Bağlantı yöntemi Public access
    Azure'ın içindeki Azure hizmetlerinden ve kaynaklarından bu kümeye genel erişime izin ver Enabled
  9. Geçerli istemci cihazınız için kümeye erişim sağlamak amacıyla, + Geçerli istemci IP adresini ekle seçeneğini belirleyerek bir güvenlik duvarı kuralı ekleyin.

    Ağ yapılandırmalarını gösteren ekran görüntüsü.

    Tip

    Birçok kurumsal ortamda, bir VPN veya diğer kurumsal ağ ayarları nedeniyle geliştirici makinesi IP adresleri gizlenir. Bu gibi durumlarda, IP adresi aralığını güvenlik duvarı kuralı olarak ekleyerek tüm IP adreslerine 0.0.0.0 - 255.255.255.255 geçici olarak erişim izni vekleyebilirsiniz. Bu güvenlik duvarı kuralını yalnızca geçici olarak bağlantı testi ve geliştirme kapsamında kullanın.

  10. Seçin, gözden geçir ve oluştur.

  11. Sağladığınız ayarları gözden geçirin ve oluştur'u seçin. Kümenin oluşturulması birkaç dakika sürer. Kaynak dağıtımının tamamlanmasını bekleyin.

  12. Son olarak, portalda Azure DocumentDB kümesine gitmek için Kaynağa git öğesini seçin.

Kaynak seçeneklerini gösteren ekran görüntüsü.

Küme kimlik bilgilerini alma

Kümeye bağlanmak için kullandığınız kimlik bilgilerini alın.

  1. Küme sayfasında, kaynak menüsünde Bağlantı dizeleri seçeneğini belirleyin.

  2. Bağlantı dizeleri bölümünde, Değeri Bağlantı dizesi alanından kopyalayın veya kaydedin.

Bağlantı dizeleri seçeneğini gösteren ekran görüntüsü.

Important

Portaldaki bağlantı dizesi parola değerini içermez. Yer tutucuyu, kümeyi <password> oluştururken girdiğiniz kimlik bilgileriyle değiştirmeniz veya parolayı etkileşimli olarak girmeniz gerekir.

Projeyi başlatma

Geçerli dizininizde yeni bir .NET konsol uygulaması projesi oluşturun.

  1. Boş bir klasörde başlayın.

  2. Geçerli dizinde bir terminal açın.

  3. Yeni bir .NET konsol uygulaması oluşturun.

    dotnet new console
    
  4. Başarıyla oluşturulduğundan emin olmak için projeyi oluşturun.

    dotnet build
    

İstemci kitaplığını yükleme

İstemci kitaplığı, MongoDB.Driver paketi olarak NuGet aracılığıyla kullanılabilir.

  1. NuGet paket yöneticisini kullanarak MongoDB .NET sürücüsünü yükleyin.

    dotnet add package MongoDB.Driver
    
  2. Paket başvurusunun mevcut olduğunu doğrulamak için azure-documentdb-dotnet-quickstart.csproj dosyasını açın ve gözden geçirin.

  3. Gerekli ad alanlarını uygulama kodunuz içine aktarın:

    using System;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    using MongoDB.Bson;
    using MongoDB.Bson.Serialization.Attributes;
    using MongoDB.Driver;
    

Nesne modeli

Name Description
MongoClient MongoDB'ye bağlanmak için kullanılan tür.
IMongoDatabase Kümedeki bir veritabanını temsil eder.
IMongoCollection<T> Kümedeki bir veritabanındaki koleksiyonu temsil eder.

Kod örnekleri

Bu uygulamadaki kod, adventureworks adlı bir veritabanına ve products adlı bir koleksiyona bağlanır. Koleksiyon ad products , kategori, miktar, benzersiz tanımlayıcı ve her ürün için satış bayrağı gibi ayrıntıları içerir. Buradaki kod örnekleri bir koleksiyonla çalışırken en yaygın işlemleri gerçekleştirir.

İstemcinin kimliğini doğrulama

İlk olarak, temel bir bağlantı dizesi kullanarak istemciye bağlanın.

  1. Ana yöntemi oluşturun ve bağlantı dizesini ayarlayın. , <your-cluster-name>ve <your-username> değerlerini gerçek küme bilgilerinizle değiştirin<your-password>.

    class Program
    {
        static async Task Main(string[] args)
        {
            // Connection string for Azure DocumentDB cluster
            string 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 MongoDB client settings
            var settings = MongoClientSettings.FromConnectionString(connectionString);
    
  2. MongoDB istemcisini oluşturun ve bağlantıyı doğrulayın.

            // Create a new client and connect to the server
            var client = new MongoClient(settings);
    
            // Ping the server to verify connection
            var database = client.GetDatabase("admin");
            var pingCommand = new BsonDocument("ping", 1);
            await database.RunCommandAsync<BsonDocument>(pingCommand);
    
            Console.WriteLine("Successfully connected and pinged Azure DocumentDB");
    

Koleksiyon alma

Şimdi veritabanınızı ve koleksiyonunuzu alın. Veritabanı ve koleksiyon henüz yoksa, bunları sizin için otomatik olarak oluşturması için sürücüyü kullanın.

  1. Veritabanına bir referans alın.

            // Get database reference
            var adventureWorksDatabase = client.GetDatabase("adventureworks");
            Console.WriteLine($"Connected to database: {adventureWorksDatabase.DatabaseNamespace.DatabaseName}");
    
  2. Veritabanındaki koleksiyona bir referans alın.

            // Get collection reference
            var productsCollection = adventureWorksDatabase.GetCollection<Product>("products");
            Console.WriteLine($"Connected to collection: products");
    

Belge oluşturma

Ardından, koleksiyonunuz içinde birkaç yeni belge oluşturun. Mevcut tüm belgelerin aynı benzersiz tanımlayıcıyla zaten mevcut olması durumunda değiştirdiğinden emin olmak için belgeleri ekleyin.

  1. Bir Product sınıfı tanımlayın ve örnek ürün belgeleri oluşturun.

            // Create sample products
            var products = new List<Product>
            {
                new Product
                {
                    Id = "00000000-0000-0000-0000-000000004018",
                    Name = "Windry Mittens",
                    Category = "apparel-accessories-gloves-and-mittens",
                    Quantity = 121,
                    Price = 35.00m,
                    Sale = false
                },
                new Product
                {
                    Id = "00000000-0000-0000-0000-000000004318",
                    Name = "Niborio Tent",
                    Category = "gear-camp-tents",
                    Quantity = 140,
                    Price = 420.00m,
                    Sale = true
                }
            };
    
  2. Upsert işlemlerini kullanarak belgeleri ekleyin.

            // Insert documents with upsert
            foreach (var product in products)
            {
                var filter = Builders<Product>.Filter.Eq(p => p.Id, product.Id);
                var options = new ReplaceOptions { IsUpsert = true };
    
                await productsCollection.ReplaceOneAsync(filter, product, options);
                Console.WriteLine($"Upserted product: {product.Name}");
            }
    
  3. Program.cs dosyanızın sonuna Product sınıfı tanımını ekleyin.

    public class Product
    {
        [BsonId]
        [BsonElement("_id")]
        public string Id { get; set; }
    
        [BsonElement("name")]
        public string Name { get; set; }
    
        [BsonElement("category")]
        public string Category { get; set; }
    
        [BsonElement("quantity")]
        public int Quantity { get; set; }
    
        [BsonElement("price")]
        public decimal Price { get; set; }
    
        [BsonElement("sale")]
        public bool Sale { get; set; }
    }
    

Bir belgeyi geri yüklemek

Ardından, koleksiyonunuzdan belirli bir belgeyi almak için bir nokta okuma işlemi gerçekleştirin.

  1. Belirli bir belgeyi kimliğine göre bulmak için filtreyi tanımlayın.

            // Retrieve a specific document by ID
            var filter = Builders<Product>.Filter.Eq(p => p.Id, "00000000-0000-0000-0000-000000004018");
    
  2. Sorguyu yürütür ve sonucu alır.

            var retrievedProduct = await productsCollection.Find(filter).FirstOrDefaultAsync();
    
            if (retrievedProduct != null)
            {
                Console.WriteLine($"Retrieved product: {retrievedProduct.Name} - ${retrievedProduct.Price}");
            }
            else
            {
                Console.WriteLine("Product not found");
            }
    

Belgeleri sorgulama

Son olarak MongoDB Sorgu Dili'ni (MQL) kullanarak birden çok belgeyi sorgula.

  1. Belirli ölçütlerle eşleşen belgeleri bulmak için bir sorgu tanımlayın.

            // Query for products on sale
            var saleFilter = Builders<Product>.Filter.Eq(p => p.Sale, true);
            var saleProducts = await productsCollection.Find(saleFilter).ToListAsync();
    
  2. Eşleşen belgeleri görüntülemek için sonuçlarda yineleme yapın.

            Console.WriteLine("Products on sale:");
            foreach (var product in saleProducts)
            {
                Console.WriteLine($"- {product.Name}: ${product.Price:F2} (Category: {product.Category})");
            }
        }
    }
    

Visual Studio Code kullanarak verilerinizi keşfetme

Verileri sorgulama, ekleme, güncelleştirme ve silme gibi temel veritabanı işlemlerini gerçekleştirmek için Visual Studio Code'daki DocumentDB uzantısını kullanın.

  1. Visual Studio Code açın.

  2. Uzantılar görünümüne gidin ve terimini DocumentDBarayın. VS Code için DocumentDB uzantısını bulun.

  3. Uzantı için Yükle düğmesini seçin. Yüklemenin tamamlanmasını bekleyin. İstenirse Visual Studio Code'u yeniden yükleyin.

  4. Etkinlik Çubuğu'nda ilgili simgeyi seçerek DocumentDB uzantısına gidin.

  5. DocumentDB Bağlantıları bölmesinde + Yeni Bağlantı... öğesini seçin.

  6. İletişim kutusunda Hizmet Bulma'yı ve ardından Azure DocumentDB - Azure Hizmet Bulma'yı seçin.

  7. Azure aboneliğinizi ve yeni oluşturduğunuz Azure DocumentDB kümesini seçin.

    Tip

    Birçok kurumsal ortamda, bir VPN veya diğer kurumsal ağ ayarları nedeniyle geliştirici makinesi IP adresleri gizlenir. Bu gibi durumlarda, IP adresi aralığını güvenlik duvarı kuralı olarak ekleyerek tüm IP adreslerine 0.0.0.0 - 255.255.255.255 geçici olarak erişim izni vekleyebilirsiniz. Bu güvenlik duvarı kuralını yalnızca geçici olarak bağlantı testi ve geliştirme kapsamında kullanın. Daha fazla bilgi için bkz. Güvenlik duvarını yapılandırma.

  8. DocumentDB Bağlantıları bölmesine dönün, kümenizin düğümünü genişletin ve var olan belge ve koleksiyon düğümlerinize gidin.

  9. Koleksiyonun bağlam menüsünü açın ve DocumentDB Yapıştırma Defteri Yeni DocumentDB Yapıştırma Defteri'ni >seçin.

  10. Aşağıdaki MongoDB Sorgu Dili (MQL) komutlarını girin ve Tümünü Çalıştır'ı seçin. Komutlardan gelen çıkışı gözlemleyin.

    db.products.find({
      price: { $gt: 200 },
      sale: true
    })
    .sort({ price: -1 })
    .limit(3)
    

Kaynakları temizle

Azure DocumentDB kümesiyle işiniz bittiğinde daha fazla ücret ödemeden oluşturduğunuz Azure kaynaklarını silebilirsiniz.

  1. Azure portalı arama çubuğunda Kaynak grupları'nı arayın ve seçin.

    Kaynak gruplarında arama seçeneğini gösteren ekran görüntüsü.

  2. Listede, bu hızlı başlangıç için kullandığınız kaynak grubunu seçin.

    Kaynak grubunu gösteren ekran görüntüsü.

  3. Kaynak grubu sayfasında, Kaynak grubunu silseçeneğini seçin.

  4. Silme onayı iletişim kutusunda, silmeyi düşündüğünüzden emin olmak için kaynak grubunun adını girin. Son olarak, kaynak grubunu kalıcı olarak silmek için Sil'i seçin.

    Kaynak grubunu sil onay düğmesini gösteren ekran görüntüsü.