Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
ŞUNLAR IÇIN GEÇERLIDIR:
MongoDB
Bu makalede, PyMongo sürücü paketini kullanarak MongoDB için Azure Cosmos DB'ye nasıl bağlanabileceğiniz gösterilmektedir. Bağlandıktan sonra veritabanları, koleksiyonlar ve belgeler üzerinde işlemler gerçekleştirebilirsiniz.
Not
Örnek kod parçacıkları GitHub'da Python projesi olarak kullanılabilir.
Bu makalede, Python, PyMongo için açık kaynak MongoDB istemci sürücülerinden birini kullanarak MongoDB için Azure Cosmos DB API'si ile nasıl iletişim kurabileceğiniz gösterilmektedir.
Önkoşullar
- Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.
- Python 3.8+
- Azure Komut Satırı Arabirimi (CLI) veya Azure PowerShell
- MongoDB için Azure Cosmos DB kaynağı
Yeni python uygulaması oluşturma
Tercih ettiğiniz terminali kullanarak yeni bir boş klasör oluşturun ve dizini klasör olarak değiştirin.
Not
Yalnızca tamamlanmış kodu istiyorsanız, tam örneği içeren örnek kod parçacıkları depoyu indirin veya çatallayın ve kopyalayın. Azure Cloud Shell'deki depoyu da
git clonekullanarak bu hızlı başlangıçta gösterilen adımları izleyebilirsiniz.PyMongo ve python-dotenv paketlerini listeleyen bir requirements.txt dosyası oluşturun. Paket
dotenv, yerel geliştirme sırasında bir.envdosyadan ortam değişkenlerini okumak için kullanılır.# requirements.txt pymongo python-dotenvSanal bir ortam oluşturun ve paketleri yükleyin.
# py -3 uses the global python interpreter. You can also use python3 -m venv .venv. py -3 -m venv .venv source .venv/Scripts/activate pip install -r requirements.txt
MongoDB için Azure Cosmos DB'ye PyMongo sürücüsüyle bağlanma
PyMongo sürücüsüyle Azure Cosmos DB'ye bağlanmak için MongoClient nesnesinin bir örneğini oluşturun. Bu sınıf, veritabanlarında tüm işlemleri gerçekleştirmek için başlangıç noktasıdır.
MongoClient için en yaygın oluşturucu, yalnızca host bu makalede ortam değişkenine ayarlanmış olan parametresini COSMOS_CONNECTION_STRING gerektirir. Oluşturucuda kullanabileceğiniz başka isteğe bağlı parametreler ve anahtar sözcük parametreleri vardır. İsteğe bağlı parametrelerin çoğu parametresiyle host de belirtilebilir. ve parametresiyle host aynı seçenek geçirilirse, parametre önceliklidir.
Bağlantı sorunları için Sorun giderme kılavuzuna bakın.
Kaynak adını alma
Aşağıdaki komutlarda kaynak grubu adı olarak msdocs-cosmos göstereceğiz. Adı durumunuz için uygun şekilde değiştirin.
resourceGroupName için bir kabuk değişkeni oluşturun.
# Variable for resource group name resourceGroupName="msdocs-cosmos"az cosmosdb listKomutunu kullanarak kaynak grubunuzdaki ilk Azure Cosmos DB hesabının adını alın ve accountName kabuk değişkeninde depolayın.# Retrieve most recently created account name accountName=$( az cosmosdb list \ --resource-group $resourceGroupName \ --query "[0].name" \ --output tsv )
Bağlantı dizenizi alma
Komutuyla hesabın bağlantı dizesi listesinden MongoDB bağlantı dizesi API'sini
az cosmosdb keys listbulun.az cosmosdb keys list --type connection-strings \ --resource-group $resourceGroupName \ --name $accountNameBİRİnCİl ANAHTAR değerlerini kaydedin. Bu kimlik bilgilerini daha sonra kullanacaksınız.
Ortam değişkenlerini yapılandırma
Kodunuzda CONNECTION STRING değerlerini kullanmak için bu değeri uygulamayı çalıştıran yerel ortamda ayarlayın. Ortam değişkenini ayarlamak için tercih ettiğiniz terminali kullanarak aşağıdaki komutları çalıştırın:
$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"
bağlantı dizesi ile MongoClient oluşturma
PyMongo ve python-dotenv paketlerine başvurmak için bağımlılıklar ekleyin.
import os import sys import pymongo from dotenv import load_dotenvOluşturucuyu ve ortam değişkeninden okunan bağlantı dizesi kullanarak sınıfının yeni bir örneğini
MongoClienttanımlayın.load_dotenv() CONNECTION_STRING = os.environ.get("COSMOS_CONNECTION_STRING") client = pymongo.MongoClient(CONNECTION_STRING) for prop, value in vars(client.options).items(): print("Property: {}: Value: {} ".format(prop, value))
Örnek oluşturmanın MongoClient farklı yolları hakkında daha fazla bilgi için bkz . MongoClient ile Bağlantı Kurma.
MongoClient bağlantısını kapatma
Uygulamanız bağlantıyla bittiğinde uygulamayı kapatmayı unutmayın. Bu .close() çağrı, tüm veritabanı çağrıları yapıldıktan sonra olmalıdır.
client.close()
MongoDB için API için Azure Cosmos DB ile MongoDB istemci sınıflarını kullanma
Uygulamayı oluşturmaya başlamadan önce Azure Cosmos DB'deki kaynak hiyerarşisini inceleyelim. Azure Cosmos DB'de kaynak oluşturmak ve kaynaklara erişmek için kullanılan belirli bir nesne modeli vardır. Azure Cosmos DB, hesaplar, veritabanları, koleksiyonlar ve belgelerden oluşan bir hiyerarşide kaynaklar oluşturur.
En üstte MongoDB için Azure Cosmos DB hesabını gösteren hiyerarşik diyagram. Hesabın iki alt veritabanı düğümü vardır. Veritabanı düğümlerinden biri iki alt koleksiyon düğümü içerir. Diğer veritabanı düğümü tek bir alt koleksiyon düğümü içerir. Bu tek koleksiyon düğümünde üç alt belge düğümü vardır.
Her kaynak türü bir veya daha fazla ilişkili Python sınıfıyla temsil edilir. En yaygın sınıfların listesi aşağıdadır:
MongoClient - PyMongo ile çalışırken ilk adım, MongoDB için Azure Cosmos DB API'sine bağlanmak üzere bir MongoClient oluşturmaktır. İstemci nesnesi, hizmette istekleri yapılandırmak ve yürütmek için kullanılır.
Veritabanı - MongoDB için Azure Cosmos DB API'si bir veya daha fazla bağımsız veritabanını destekleyebilir.
Koleksiyon - Bir veritabanı bir veya daha fazla koleksiyon içerebilir. Koleksiyon, MongoDB'de depolanan bir belge grubudur ve kabaca ilişkisel veritabanındaki bir tablonun eşdeğeri olarak düşünülebilir.
Belge - Belge, anahtar-değer çiftleri kümesidir. Belgelerin dinamik şeması vardır. Dinamik şema, aynı koleksiyondaki belgelerin aynı alan veya yapı kümesine sahip olması gerekmeyecek anlamına gelir. Ayrıca bir koleksiyonun belgelerindeki ortak alanlar farklı veri türlerini barındırabilir.
Varlıkların hiyerarşisi hakkında daha fazla bilgi edinmek için Azure Cosmos DB kaynak modeli makalesine bakın.
Ayrıca bkz.
Sonraki adımlar
MongoDB hesabı için bir API'ye bağlandığınıza göre, veritabanlarını oluşturmak ve yönetmek için sonraki kılavuzu kullanın.