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.
Bu hızlı başlangıçta, Node.jskullanarak 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, Node.jskullanarak Azure DocumentDB kümenizde belge oluşturmayı ve temel görevleri gerçekleştirmeyi gösterir.
API başvurusu | Kaynak kodu | Paket (npm)
Önkoşullar
Azure aboneliği
- Azure aboneliğiniz yoksa ücretsiz bir hesap oluşturun
- Node.js 22 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.
Azure portalında (https://portal.azure.com ) oturum açın.
Azure portalı menüsünde veya Giriş sayfasında Kaynak oluştur'u seçin.
Yeni sayfasında Azure DocumentDB'yi arayın ve seçin.
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.
Ö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.
Değer Küme katmanı M30 tier, 2 vCore, 8-GiB RAMParça başına depolama 128 GiB
Temel bilgiler bölümüne geri dönüp aşağıdaki seçenekleri yapılandırın:
Değer Subscription 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 Location Aboneliğiniz için desteklenen bir Azure bölgesi seçin MongoDB sürümü 8.0seçeneğini belirleyinYö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
İpucu
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ı.
İleri: Ağ'ı seçin.
Güvenlik duvarı kuralları bölümünde Ağ sekmesindeki şu seçenekleri yapılandırın:
Değer Bağlantı yöntemi Public accessAzure'ın içindeki Azure hizmetlerinden ve kaynaklarından bu kümeye genel erişime izin ver Enabled 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.
İpucu
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.255geç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.Seçin, gözden geçir ve oluştur.
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.
Son olarak, "Kaynağa git"i seçerek portaldaki Azure DocumentDB kümesine gidin.
Küme kimlik bilgilerini alma
Kümeye bağlanmak için kullandığınız kimlik bilgilerini alın.
Küme sayfasında, kaynak menüsünde Bağlantı dizeleri seçeneğini belirleyin.
Bağlantı dizeleri bölümünde, Değeri Bağlantı dizesi alanından kopyalayın veya kaydedin.
Önemli
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 Node.js projesi oluşturun.
Boş bir klasörde başlayın.
Geçerli dizinde bir terminal açın.
bir Node.js projesi başlatın.
npm init -yTypeScript'i yükleyin ve TypeScript yapılandırmasını başlatın (TypeScript desteği için isteğe bağlı).
npm install -D typescript @types/node npx tsc --init
İstemci kitaplığını yükleme
İstemci kitaplığı npm aracılığıyla paket olarak mongodb kullanılabilir.
npm kullanarak MongoDB Node.js sürücüsünü yükleyin.
npm install mongodbPaket girişinin mevcut olduğunu doğrulamak için package.json dosyasını açın ve gözden geçirin.
Gerekli modülleri uygulama kodunuz içine aktarın:
import { MongoClient, Db, Collection, Document } from 'mongodb';const { MongoClient } = require('mongodb');
Nesne modeli
| İsim | Description |
|---|---|
MongoClient |
MongoDB'ye bağlanmak için kullanılan tür. |
Db |
Kümedeki bir veritabanını temsil eder. |
Collection<Document> |
Kümedeki bir veritabanındaki koleksiyonu temsil eder. |
Kod örnekleri
- İstemcinin kimliğini doğrulama
- Koleksiyon edinin
- Belge oluşturma
- Belgeyi geri alma
- Belgeleri sorgulama
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.
Ana işlevi 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>.async function main(): Promise<void> { // Connection string for Azure DocumentDB cluster const 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 a new client and connect to the server const client = new MongoClient(connectionString);async function main() { // Connection string for Azure DocumentDB cluster const 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 a new client and connect to the server const client = new MongoClient(connectionString);MongoDB istemcisine bağlanın ve bağlantıyı doğrulayın.
try { // Connect to the MongoDB cluster await client.connect(); // Ping the server to verify connection await client.db("admin").command({ ping: 1 }); console.log("Successfully connected and pinged Azure DocumentDB");try { // Connect to the MongoDB cluster await client.connect(); // Ping the server to verify connection await client.db("admin").command({ ping: 1 }); console.log("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.
Veritabanına bir referans alın.
// Get database reference const database: Db = client.db("adventureworks"); console.log(`Connected to database: ${database.databaseName}`);// Get database reference const database = client.db("adventureworks"); console.log(`Connected to database: ${database.databaseName}`);Veritabanındaki koleksiyona bir referans alın.
// Get collection reference const collection: Collection<Document> = database.collection("products"); console.log("Connected to collection: products");// Get collection reference const collection = database.collection("products"); console.log("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.
Örnek ürün belgeleri oluşturun.
// Create sample products interface Product { _id: string; name: string; category: string; quantity: number; price: number; sale: boolean; } const 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, } ];// Create sample products const products = [ { _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, } ];Upsert işlemlerini kullanarak belgeleri ekleyin.
// Insert documents with upsert for (const product of products) { const filter = { _id: product._id }; const options = { upsert: true }; await collection.replaceOne(filter, product, options); console.log(`Upserted product: ${product.name}`); }// Insert documents with upsert for (const product of products) { const filter = { _id: product._id }; const options = { upsert: true }; await collection.replaceOne(filter, product, options); console.log(`Upserted product: ${product.name}`); }
Belge alma
Ardından, koleksiyonunuzdan belirli bir belgeyi almak için bir nokta okuma işlemi gerçekleştirin.
Belirli bir belgeyi kimliğine göre bulmak için filtreyi tanımlayın.
// Retrieve a specific document by ID const filter = { _id: "00000000-0000-0000-0000-000000004018" };// Retrieve a specific document by ID const filter = { _id: "00000000-0000-0000-0000-000000004018" };Sorguyu yürütür ve sonucu alır.
const retrievedProduct = await collection.findOne(filter); if (retrievedProduct) { console.log(`Retrieved product: ${retrievedProduct.name} - $${retrievedProduct.price}`); } else { console.log("Product not found"); }const retrievedProduct = await collection.findOne(filter); if (retrievedProduct) { console.log(`Retrieved product: ${retrievedProduct.name} - $${retrievedProduct.price}`); } else { console.log("Product not found"); }
Belgeleri sorgulama
Son olarak MongoDB Sorgu Dili'ni (MQL) kullanarak birden çok belgeyi sorgula.
Belirli ölçütlerle eşleşen belgeleri bulmak için bir sorgu tanımlayın.
// Query for products on sale const saleFilter = { sale: true }; const saleProducts = await collection.find(saleFilter).toArray();// Query for products on sale const saleFilter = { sale: true }; const saleProducts = await collection.find(saleFilter).toArray();Eşleşen belgeleri görüntülemek için sonuçlarda yineleme yapın.
console.log("Products on sale:"); for (const product of saleProducts) { console.log(`- ${product.name}: $${product.price.toFixed(2)} (Category: ${product.category})`); } } catch (error) { console.error("An error occurred:", error); } finally { await client.close(); } } main().catch(console.error);console.log("Products on sale:"); for (const product of saleProducts) { console.log(`- ${product.name}: $${product.price.toFixed(2)} (Category: ${product.category})`); } } catch (error) { console.error("An error occurred:", error); } finally { await client.close(); } } main().catch(console.error);
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.
Visual Studio Code'yu açın.
Uzantılar görünümüne gidin ve terimini
DocumentDBarayın. VS Code için DocumentDB uzantısını bulun.Uzantı için Yükle düğmesini seçin. Yüklemenin tamamlanmasını bekleyin. İstenirse Visual Studio Code'u yeniden yükleyin.
Etkinlik Çubuğu'nda ilgili simgeyi seçerek DocumentDB uzantısına gidin.
DocumentDB Bağlantıları bölmesinde + Yeni Bağlantı... öğesini seçin.
İletişim kutusunda Hizmet Bulma'yı ve ardından Azure DocumentDB - Azure Hizmet Bulma'yı seçin.
Azure aboneliğinizi ve yeni oluşturduğunuz Azure DocumentDB kümesini seçin.
İpucu
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.255geç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.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.
Koleksiyonun bağlam menüsünü açın ve DocumentDB Yapıştırma Defteri Yeni DocumentDB Yapıştırma Defteri'ni >seçin.
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.
Azure portalı arama çubuğunda Kaynak grupları'nı arayın ve seçin.
Listede, bu hızlı başlangıç için kullandığınız kaynak grubunu seçin.
Kaynak grubu sayfasında, Kaynak grubunu silseçeneğini seçin.
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.