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
Azure Cosmos DB'deki MongoDB sunucunuz MongoDB için yaygın Python paketlerinden kullanılabilir:
- Zaman uyumlu Python uygulamaları için PyMongo ve bu makalede kullanılır.
- Zaman uyumsuz Python uygulamaları için motor.
Not
Örnek kod parçacıkları GitHub'da Python projesi olarak kullanılabilir.
Veritabanını adlandırma
Azure Cosmos DB'de veritabanı bir ad alanına benzer. Veritabanı oluşturduğunuzda, veritabanı adı veritabanı kaynağına ve alt kaynaklara erişmek için kullanılan URI'nin bir kesimini oluşturur.
Bir veritabanını adlandırırken bazı hızlı kurallar şunlardır:
Oluşturulduktan sonra, bir veritabanının URI'si şu biçimdedir:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>
Veritabanı örneğini alma
Veritabanı koleksiyonları ve belgelerini barındırıyor. Veritabanına erişmek için MongoClient'ın öznitelik stili erişimini veya sözlük stili erişimini kullanın. Daha fazla bilgi için bkz . Veritabanı Alma.
Aşağıdaki kod parçacıkları, istemci bağlantınızı zaten oluşturduğunuzu ve bu kod parçacıklarından sonra istemci bağlantınızı kapattığınız varsayılır.
Sunucu bilgilerini alma
MongoClient sınıfının server_info yöntemiyle sunucu bilgilerine erişin. Bu bilgileri almak için veritabanı adını belirtmeniz gerekmez. Döndürülen bilgiler MongoDB'ye özgüdür ve Azure Cosmos DB platformunun kendisini temsil etmez.
Ayrıca MongoClient.list_database_names yöntemini kullanarak veritabanlarını listeleyebilir ve MongoClient.db.command yöntemiyle bir veritabanına MongoDB komutu vekleyebilirsiniz.
# Get server information
for k, v in client.server_info().items():
print("Key: {} , Value: {}".format(k, v))
# Get server status of admin database
print("Server status {}".format(client.admin.command("serverStatus")))
# List databases
databases = client.list_database_names()
print("Databases: {}".format(databases))
Yukarıdaki kod parçacığı, çıktıyı aşağıdaki örnek konsol çıkışına benzer şekilde görüntüler:
Key: version , Value: 3.6.0
Key: versionArray , Value: [3, 6, 0, 0]
Key: bits , Value: 64
Key: maxBsonObjectSize , Value: 16777216
Key: ok , Value: 1.0
Server status {'ok': 1.0}
Databases: ['adventureworks']
Veritabanı var mı?
Python için PyMongo sürücüsü, eriştiğiniz sırada yoksa bir veritabanı oluşturur. Ancak bunun yerine MongoDB için Azure Cosmos DB API'sinde depolanan verileri yönetmek için MongoDB uzantısı komutlarını kullanmanızı öneririz. Yoksa yeni bir veritabanı oluşturmak için aşağıdaki kod parçacığında gösterildiği gibi veritabanı oluşturma uzantısını kullanın.
Veritabanını kullanmadan önce zaten var olup olmadığını görmek için list_database_names yöntemiyle geçerli veritabanlarının listesini alın.
# Get list of databases
databases = client.list_database_names()
if not databases:
print("No databases found")
# Does database exist?
DB_NAME = "adventureworks"
if DB_NAME in databases:
print("Database exists: {}".format(DB_NAME))
else:
client[DB_NAME].command(
{"customAction": "CreateDatabase", "offerThroughput": 400}
)
print("Created db '{}' with shared throughput.\n".format(DB_NAME))
Yukarıdaki kod parçacığı, çıktıyı aşağıdaki örnek konsol çıkışına benzer şekilde görüntüler:
Database exists: adventureworks
Veritabanlarının, koleksiyonların ve belge sayısının listesini alma
MongoDB sunucunuzu program aracılığıyla yönetirken, sunucuda hangi veritabanlarının ve koleksiyonların olduğunu ve her koleksiyonda kaç belge olduğunu bilmek yararlı olur. Daha fazla bilgi için bkz.
# Get list of databases
databases = client.list_database_names()
# Loop through databases
for db in databases:
print("Database: {}".format(db))
# Get list of collections
collections = client[db].list_collection_names()
# Loop through collections
for col in collections:
print("\tCollection: {}".format(col))
# Get document count
doc_count = client[db][col].count_documents({})
print("\tDocument count: {}".format(doc_count))
Yukarıdaki kod parçacığı, çıktıyı aşağıdaki örnek konsol çıkışına benzer şekilde görüntüler:
Database: adventureworks
Collection: products_new
Document count: 1
Collection: products
Document count: 3
Database: testdb
Collection: mycoll
Document count: 1
Veritabanı nesne örneğini alma
Veritabanı yoksa, Python için PyMongo sürücüsü bu veritabanını eriştiğinde oluşturur. Ancak bunun yerine MongoDB için Azure Cosmos DB API'sinde depolanan verileri yönetmek için MongoDB uzantısı komutlarını kullanmanızı öneririz. Desen yukarıda Veritabanı var mı? bölümünde gösterilmiştir.
PyMongo ile çalışırken, MongoClient örneklerinde öznitelik stili erişimini kullanarak veritabanlarına erişebilirsiniz. Veritabanı örneğiniz olduktan sonra, aşağıda gösterildiği gibi veritabanı düzeyi işlemlerini kullanabilirsiniz.
collections = client[db].list_collection_names()
PyMongo sürücüsünü kullanarak veritabanlarıyla çalışmaya genel bakış için bkz . Veritabanı düzeyinde işlemler.
Veritabanını bırakma
MongoClient'ın drop_database yöntemi kullanılarak bir veritabanı sunucudan kaldırılır.
DB_NAME = input("Enter database name to drop: ")
if DB_NAME in client.list_database_names():
print("Dropping database: {}".format(DB_NAME))
client.drop_database(DB_NAME)
else:
print("Didn't find database: {}".format(DB_NAME))
Yukarıdaki kod parçacığı, çıktıyı aşağıdaki örnek konsol çıkışına benzer şekilde görüntüler:
Enter database name to drop: adventureworks
Dropping database: adventureworks