Ana içeriğe geç

MongoDB

Okunuşu
mongo di bi
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/mongodb

Kısaca

MongoDB, veriyi tablo satırı yerine esnek, JSON benzeri belgelerde saklayan bir belge veritabanıdır; aynı koleksiyondaki kayıtların alanları farklı olabilir.

MongoDB nedir?

MongoDB, bugün MongoDB, Inc. adını taşıyan şirketin 2009'da ilk kez yayımladığı bir NoSQL belge veritabanıdır. Tablolar, satırlar ve sütunlar yerine koleksiyonlarda belgeler saklar. Belge, içeride BSON denen ikili bir biçimde kaydedilen, iç içe nesneler ve diziler barındırabilen JSON benzeri bir nesnedir; böylece tek bir belge bir kullanıcıyı adresleri ve tercihleriyle birlikte tutabilir.

Sabit bir şema olmadığı için aynı koleksiyondaki belgelerin farklı alanları olabilir ve yeni alanlar bir migration'a gerek kalmadan eklenebilir. Birlikte okunan veri çoğu zaman tek bir belgede birlikte saklanır; bu da join'lerden kaçınıp tipik okumaları hızlı kılar. İndeksler, veriyi gruplayıp dönüştürmek için bir toplama hattı (aggregation pipeline) ve çok belgeli ACID transaction'lar yerleşik olarak gelir.

MongoDB, bir koleksiyonu bir shard anahtarına göre bölen sharding ile makineler arasında yatay ölçeklenir; veriyi de bir replica set içinde birkaç sunucuda kopyalar tutar, böylece biri çökerse yeni bir birincil seçilir. Şirketin yönetilen bulut servisi MongoDB Atlas, onu çalıştırmanın yaygın bir yoludur.

Sık yapılan bir yanlış, esnek şemanın tasarım gerektirmediği düşüncesidir. Doğrulama kuralları olmadan veri tutarsız biçimlere kayar; birçok koleksiyon arasındaki ilişkileri sorgulamak da zahmetli olabilir. MongoDB doğası gereği belge biçimindeki veriye uyar; kayıtlar arasında çok sayıda bağlantı olan, güçlü biçimde ilişkisel veriler çoğu zaman ilişkisel bir veritabanına daha iyi uyar.

Önemli noktalar

  • MongoDB, JSON benzeri belgeleri (BSON) tablolardaki satırlar yerine koleksiyonlarda saklar.
  • Bir koleksiyondaki belgelerin farklı alanları olabilir.
  • Birlikte okunan veri genellikle birlikte saklanır; join'lere gerek kalmaz.
  • Sharding ile yatay ölçeklenir, replica set'lerle erişilebilir kalır.
  • Esnek şemalar da doğrulama ve dikkatli tasarım gerektirir.

Örnek

Bir belgeyi kaydedip bulmak (Node.js)javascript
import { MongoClient } from "mongodb";

const client = new MongoClient("mongodb://localhost:27017");
const users = client.db("shop").collection("users");

// A document can nest objects and arrays
await users.insertOne({
  name: "Ada",
  email: "ada@example.com",
  addresses: [{ city: "Istanbul", zip: "34000" }],
});

const ada = await users.findOne({ email: "ada@example.com" });

Sık sorulan sorular

MongoDB ilişkisel bir veritabanı mı?

Hayır. MongoDB bir NoSQL belge veritabanıdır: tablolardaki satırlar yerine koleksiyonlarda belgeler saklar ve sabit bir şema gerektirmez.

MongoDB transaction'ları destekler mi?

Evet. Tek belgelik yazmalar her zaman atomikti; 4.0 sürümünden bu yana MongoDB çok belgeli ACID transaction'ları da destekler.

MongoDB ücretsiz mi?

Community Server, Server Side Public License (SSPL) ile ücretsiz kullanılabilir. Şirket ayrıca bir kurumsal sürüm ve ücretsiz katmanı olan, yönetilen Atlas servisini de satar.

Sık karşılaştırılanlar

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar