mongoexport: Koleksiyonları Dosyalara Aktarma
Öğrenenler, belirli alanları seçip filtreler uygulayarak bir koleksiyonu mongoexport ile JSON veya CSV biçiminde dışa aktaracaklardır.
mongoexport: Koleksiyonları Dosyalara Aktarma, CoddyKit'te ücretsiz bir MongoDB Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, MongoDB Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. MongoDB Academy kursu toplamda 4 dersten oluşur.
mongoexport Nedir?
mongoexport, bir koleksiyondaki belgeleri okuyup bir dosyaya yazan MongoDB Database Tools komut satırı yardımcı programıdır. Verileri JSON (JSONL biçiminde, satır başına bir belge) veya CSV biçiminde dışa aktarır. Yaygın kullanım alanları arasında analiz için veri yedekleri oluşturmak, verileri başka bir sisteme taşımak, hata ayıklama amacıyla anlık görüntüler paylaşmak veya üretim ortamındaki bir örnekten diğer ortamları başlangıç verileriyle doldurmak bulunur.
Temel JSON Dışa Aktarma
En basit dışa aktarma komutu kaynak veritabanını, koleksiyonu ve çıktı dosyasını belirtir. Varsayılan olarak mongoexport, büyük dışa aktarmaları akış hâlinde işlemek ve mongoimport ile yeniden içe aktarmak için ideal olan JSONL biçimini (satır başına bir JSON belgesi) kullanır. Çıktı dosyasını adlandırmak için --out kullanın; bu seçenek olmadan belgeler standart çıktıya yazdırılır.
# Export the 'products' collection to JSONL
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection products \
--out products_export.json
# Each line in the output file is one document:
# {"_id":{"$oid":"..."},"name":"Widget","price":9.99}
# {"_id":{"$oid":"..."},"name":"Gadget","price":19.99}CSV Biçimine Dışa Aktarma
Virgülle ayrılmış değerler olarak dışa aktarmak için --type csv kullanın. CSV dışa aktarmalarında, dahil edilecek alanları --fields ile listelemeniz gerekir; mongoexport, şema esnekliğine sahip bir koleksiyondaki tüm alanları otomatik olarak çıkaramaz. CSV çıktısının ilk satırında, belirttiğiniz alanlarla eşleşen sütun başlıkları bulunur.
# Export selected fields as CSV
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection products \
--type csv \
--fields 'name,price,category,rating' \
--out products_export.csv
# Output:
# name,price,category,rating
# Widget,9.99,tools,4.5
# Gadget,19.99,electronics,4.2Dışa Aktarılacak Belgeleri Filtreleme
Tüm koleksiyon yerine yalnızca bir koşulla eşleşen belgeleri dışa aktarmak için --query seçeneğini JSON filtre belgesiyle birlikte kullanın. Bu, ihtiyaç duymadığınız verileri dışa aktarmadan belirli bir alt kümeyi (örneğin belirli bir aydaki tüm siparişleri veya belirli bir role sahip tüm kullanıcıları) çıkarmak için kullanışlıdır.
# Export only shipped orders from January 2024
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection orders \
--query '{"status":"shipped","createdAt":{"$gte":{"$date":"2024-01-01T00:00:00Z"},"$lt":{"$date":"2024-02-01T00:00:00Z"}}}' \
--out january_orders.jsonDışa Aktarılacak Belirli Alanları Seçme
Çıktıya dahil edilecek alan adlarının virgülle ayrılmış listesini belirtmek için --fields (veya -f) kullanın. Listede bulunmayan alanlar dışarıda bırakılır. Bu işlem, bir bulma sorgusundaki dahil etme projeksiyonuna eşdeğerdir. --query ile birlikte kullanarak ihtiyacınız olan veri dilimini tam olarak dışa aktarabilir, dosya boyutlarını küçük tutabilir ve yalnızca ilgili alanları paylaşabilirsiniz.
# Export only name, email, and createdAt for active users
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection users \
--query '{"isActive":true}' \
--fields 'name,email,createdAt' \
--out active_users.json
# Sensitive fields like passwordHash are automatically excludedDışa Aktarma Çıktısını Sıralama
Belgeleri belirli bir sırada dışa aktarmak için --sort seçeneğini bir JSON sıralama belgesiyle birlikte kullanın. Bu, aşağı akıştaki işlemler için çıktı dosyasının sıralı olması gerektiğinde kullanışlıdır; örneğin olayları yeniden oynatmak üzere kronolojik sırada veya bir rapor için kullanıcıları alfabetik sırada dışa aktarabilirsiniz.
# Export events in chronological order
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection events \
--sort '{"timestamp":1}' \
--out events_sorted.jsonDışa Aktarma Sayısını Sınırlama
En fazla N belgeyi dışa aktarmak için --limit, ilk N belgeyi atlamak için --skip kullanın. Bu seçenekler bir örneği (örneğin en son 1.000 siparişi) dışa aktarmanıza veya --skip ofsetlerini kullanarak koleksiyonda yinelenen çağrılarla sayfalama yapıp verileri gruplar hâlinde dışa aktarmanıza olanak tanır. --limit seçeneğini anlamlı sonuçlar elde etmek için --sort ile birlikte kullanın.
# Export the 100 most recently created products (sample for testing)
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection products \
--sort '{"createdAt":-1}' \
--limit 100 \
--out products_sample.jsonGenişletilmiş JSON ve Rahat Mod Karşılaştırması
mongoexport, varsayılan olarak JSON'da yerel karşılığı olmayan BSON türlerini temsil etmek için özel sarmalayıcı nesneler kullanan Genişletilmiş JSON çıktısı üretir; örneğin ObjectId için {"$oid":"..."}, tarihler için {"$date":"..."} kullanılır. Tarihlerin ISO dizelerine, sayıların ise düz JSON sayılarına dönüştüğü rahat Genişletilmiş JSON çıktısı almak için --relaxed kullanın. Bu biçim daha okunabilirdir ancak yeniden içe aktarma sırasında bazı tür bilgilerinin korunmasını kaybettirir.
# Default (Canonical Extended JSON)
# {"_id":{"$oid":"65a..."},"price":{"$numberDecimal":"9.99"}}
# Relaxed Extended JSON — more human-readable
mongoimport \
--uri 'mongodb://localhost:27017/myapp' \
--collection products \
--relaxed \
--out products_relaxed.json
# {"_id":"65a...","price":9.99}MongoDB Atlas'tan Dışa Aktarma
Bir Atlas kümesinden dışa aktarmak için Atlas kümesinin SRV bağlantı dizesini --uri seçeneğinde kullanın. Atlas TLS gerektirir (SRV URI'leriyle otomatik olarak etkinleştirilir). Çok büyük Atlas koleksiyonları için Atlas arayüzündeki 'Koleksiyonu Dışa Aktar' düğmesini kullanmayı veya S3'e ya da diğer veri göllerine analitik dışa aktarımlar yapmak üzere Atlas Data Federation'ı tercih edin.
# Export from Atlas cluster
MONGO_URI='mongodb+srv://user:password@cluster0.abc.mongodb.net/myapp'
mongoimport \
--uri "$MONGO_URI" \
--collection orders \
--query '{"status":"completed"}' \
--out completed_orders.jsonmongoexport ve mongodump Karşılaştırması
Kullanım amacınıza uygun aracı seçin:
- mongoexport: insanlar tarafından okunabilen JSON veya CSV çıktısı üretir; veri paylaşımı, analiz veya seçmeli taşıma için uygundur; filtreleme ve projeksiyon yapabilir
- mongodump: ikili BSON çıktısı üretir; tüm koleksiyon veya veritabanı yedekleri için kullanılır; daha hızlıdır ve tüm BSON türlerini kayıpsız biçimde korur; insanlar tarafından okunamaz
mongodump kullanmayı tercih edin. Veri paylaşımı veya seçmeli dışa aktarımlar için mongoexport kullanın.Dışa Aktarma Çıktısını Başka Bir Komuta Aktarma
--out seçeneği olmadan mongoexport, Unix boru hattı bileşimlerini mümkün kılacak şekilde çıktıyı standart çıktıya yazdırır. Çıktıyı belge saymak için wc -l komutuna, satırları filtrelemek için grep komutuna, JSON işlemek için jq komutuna veya tamamen başka bir komuta aktarabilirsiniz. Bu, mongoexport aracını veri boru hattı betiklerinde esnek bir bileşen hâline getirir.
# Count documents exported
mongoimport --uri '...' --collection products | wc -l
# Pipe to jq to extract just product names
mongoimport --uri '...' --collection products | jq -r '.name'
# Compress while exporting
mongoimport --uri '...' --collection products | gzip > products.json.gzHızlı Kontrol
Bu dersteki MongoDB ve NoSQL Veritabanları kavramlarını anlayıp anlamadığınızı test edin.
Ders Özeti
Bu derste şunları öğrendiniz: mongoexport, isteğe bağlı filtre, alan seçimi ve sıralamayla bir koleksiyondan JSONL veya CSV çıktısı üretir, --query, hedeflenen bir belge alt kümesini dışa aktarmanıza olanak tanır ve tam yedeklemeler için mongodump, seçmeli ve insanlar tarafından okunabilen dışa aktarımlar içinse mongoexport tercih edilir. Sırada, tam ikili veritabanı yedekleri için mongodump ve mongorestore araçlarını inceleyeceğiz.
Yapay zeka eğitmeniyle JavaScript öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 30
- Dersler
- 120
Sıkça Sorulan Sorular
“mongoexport: Koleksiyonları Dosyalara Aktarma” dersi ücretsiz mi?
Evet — “mongoexport: Koleksiyonları Dosyalara Aktarma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve MongoDB Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. MongoDB Academy kursu toplamda 4 dersten oluşur.
“mongoexport: Koleksiyonları Dosyalara Aktarma” dersinde ne öğreneceğim?
Öğrenenler, belirli alanları seçip filtreler uygulayarak bir koleksiyonu mongoexport ile JSON veya CSV biçiminde dışa aktaracaklardır. MongoDB Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
MongoDB Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te MongoDB Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“mongoexport: Koleksiyonları Dosyalara Aktarma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu MongoDB Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her MongoDB Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- mongoimport: JSON ve CSV Dosyalarını Yükleme
- mongoexport: Koleksiyonları Dosyalara Aktarma
- Tam Yedeklemeler İçin mongodump ve mongorestore
- Node.js Betikleriyle Veri Tohumlama