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 npm paketlerinden kullanılabilir; örneğin:
Not
Örnek kod parçacıkları GitHub'da JavaScript projesi olarak kullanılabilir.
MongoDB için API başvuru belgeleri | MongoDB Paketi (npm)
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. Sunucudaki veritabanlarına Db erişmek için sınıfının bir örneğini kullanın.
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
Sunucu bilgilerini almak için Yönetici sınıfına erişin. yönteminde db veritabanı adını belirtmeniz gerekmez. Döndürülen bilgiler MongoDB'ye özgüdür ve Azure Cosmos DB platformunun kendisini temsil etmez.
// Get server build info
const serverInfo = await client.db().admin().serverInfo();
console.log(
`Server info:\n${Object.keys(serverInfo).map(key => `\t${key}: ${serverInfo[key]}\n`)}`
);
// Get server status
// Not supported in vCore
// const serverStatus = await client.db().admin().serverStatus();
// console.log(
// `Server status:\n${Object.keys(serverStatus).map(key => `\t${key}: ${serverStatus[key]}\n`)}`
// );
// List all databases
const dbListResult = await client.db().admin().listDatabases();
console.log(
`Databases:\n${dbListResult.databases.map(db => `\t${db.name}\n`)}`
);
Yukarıdaki kod parçacığı aşağıdaki örnek konsol çıkışını görüntüler:
Server info:
version: 4.0.0
, versionArray: 4,0,0,0
, bits: 64
, maxBsonObjectSize: 16777216
, ok: 1
Server status:
ok: 1
Databases:
adventureworks
, oldmain
done
Veritabanı var mı?
JavaScript için yerel MongoDB sürücüsü, veritabanı eriştiğinde yoksa veritabanını oluşturur. Veritabanını kullanmadan önce zaten var olup olmadığını bilmek isterseniz, geçerli veritabanlarının listesini alın ve adı için filtreleyin:
// Get list of databases
const listResult = await client.db().admin().listDatabases();
if (listResult.databases.length === 0) {
return 'No databases found';
}
// does database exist
const lookForDatabase = 'adventureworks';
const dbFound = listResult.databases.find(db => db.name === lookForDatabase);
if (dbFound) {
return `Database exists:\t${lookForDatabase}`;
}
Yukarıdaki kod parçacığı aşağıdaki örnek konsol çıkışını 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.
- MongoClient.Db.Admin.listDatabases
- MongoClient.Db.listCollections
- MongoClient.Db.Collection
- MongoClient.Db.Collection.countDocuments
// get list of databases
const listResult = await client.db().admin().listDatabases();
console.log('Databases:\n');
// loop through databases
for await (let database of listResult.databases) {
console.log(`\t${database.name}\n`);
// get database client
const dbClient = client.db(database.name);
// get collections in database
const collections = await dbClient.listCollections();
console.log('\n\t\tCollections:\n');
// loop through collections
for await (let collection of collections) {
// get collection client
const collectionClient = dbClient.collection(collection.name);
// get doc count of collection
const docCount = await collectionClient.countDocuments({});
console.log(`\t\t\t${collection.name}: ${docCount} doc(s)\n`);
}
}
Yukarıdaki kod parçacığı aşağıdaki örnek konsol çıkışını görüntüler:
Databases:
adventureworks
Collections:
products: 1 doc(s)
oldmain
Collections:
central: 0 doc(s)
done
Veritabanı nesne örneğini alma
Veritabanı nesnesi örneğini almak için aşağıdaki yöntemi çağırın. Bu yöntem isteğe bağlı bir veritabanı adını kabul eder ve bir zincirin parçası olabilir.
Veritabanına erişildiğinde veritabanı oluşturulur. Yeni veritabanına erişmenin en yaygın yolu, koleksiyona belge eklemektir. Zincirlenmiş nesneler kullanılarak bir kod satırında veritabanı, koleksiyon ve belge oluşturulur.
const insertOneResult = await client.db("adventureworks").collection("products").insertOne(doc);
Koleksiyonlar ve belgelerle çalışma hakkında daha fazla bilgi edinin.
Veritabanını bırakma
Veritabanı, DB sınıfındaki dropDatabase yöntemi kullanılarak sunucudan kaldırılır.
// Drop a database, removing it permanently from the server.
const dropDatabase = await client.db('adventureworks').dropDatabase();
console.log(`Drop database:\t${JSON.stringify(dropDatabase)}`);
Yukarıdaki kod parçacığı aşağıdaki örnek konsol çıkışını görüntüler:
Drop database: true
done