[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:database\u002Fmongodb-schema-modeling":4,"config":214},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":115,"samples":129},"database","Veritabanı","","mongodb-schema-modeling","Mongodb Schema Modeling","tr",75,2475,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,40,43,46,49,52,55,58,61,64,67,70,73,76,79,82,85,88,91,94,97,100,103,106,109,112],{"key":19,"name":20,"count":11},"backup-recovery","Backup Recovery",{"key":22,"name":23,"count":11},"data-modeling","Data Modeling",{"key":25,"name":26,"count":11},"indexing","Indexing",{"key":28,"name":29,"count":11},"mongodb-aggregation","Mongodb Aggregation",{"key":31,"name":32,"count":11},"mongodb-indexes-queries","Mongodb Indexes Queries",{"key":34,"name":35,"count":11},"mongodb-operations","Mongodb Operations",{"key":37,"name":38,"count":11},"mongodb-replication-sharding","Mongodb Replication Sharding",{"key":8,"name":9,"count":11},{"key":41,"name":42,"count":11},"mongodb-transactions-consistency","Mongodb Transactions Consistency",{"key":44,"name":45,"count":11},"mysql-indexes","Mysql Indexes",{"key":47,"name":48,"count":11},"mysql-innodb-transactions","Mysql Innodb Transactions",{"key":50,"name":51,"count":11},"mysql-operations","Mysql Operations",{"key":53,"name":54,"count":11},"mysql-query-optimization","Mysql Query Optimization",{"key":56,"name":57,"count":11},"mysql-replication-scaling","Mysql Replication Scaling",{"key":59,"name":60,"count":11},"mysql-types-constraints","Mysql Types Constraints",{"key":62,"name":63,"count":11},"nosql-models","Nosql Models",{"key":65,"name":66,"count":11},"performance-tuning","Performance Tuning",{"key":68,"name":69,"count":11},"pg-indexes","Pg Indexes",{"key":71,"name":72,"count":11},"pg-mvcc-vacuum","Pg Mvcc Vacuum",{"key":74,"name":75,"count":11},"pg-operations","Pg Operations",{"key":77,"name":78,"count":11},"pg-query-planning","Pg Query Planning",{"key":80,"name":81,"count":11},"pg-transactions-locking","Pg Transactions Locking",{"key":83,"name":84,"count":11},"pg-types-constraints","Pg Types Constraints",{"key":86,"name":87,"count":11},"query-optimization","Query Optimization",{"key":89,"name":90,"count":11},"redis-cluster-sharding","Redis Cluster Sharding",{"key":92,"name":93,"count":11},"redis-data-structures","Redis Data Structures",{"key":95,"name":96,"count":11},"redis-expiration-eviction","Redis Expiration Eviction",{"key":98,"name":99,"count":11},"redis-persistence","Redis Persistence",{"key":101,"name":102,"count":11},"redis-replication-sentinel","Redis Replication Sentinel",{"key":104,"name":105,"count":11},"redis-transactions-scripting","Redis Transactions Scripting",{"key":107,"name":108,"count":11},"replication-scaling","Replication Scaling",{"key":110,"name":111,"count":11},"security-access","Security Access",{"key":113,"name":114,"count":11},"transactions-isolation","Transactions Isolation",[116,120,123,126],{"key":117,"name":118,"count":119},"mongodb","MongoDB",450,{"key":121,"name":122,"count":119},"mysql","MySQL",{"key":124,"name":125,"count":119},"postgresql","PostgreSQL",{"key":127,"name":128,"count":119},"redis","Redis",[130,148,161,175,188,201],{"id":131,"topic":9,"difficulty":132,"body":133,"options":134,"correct_key":142,"explanation":147},"019f87c2-bd30-765f-9026-73d5d0fbb9e3",1,"Bir `user` document'ı bir `preferences` sub-document'ı gömüyor. Tek bir update, `preferences.theme` ve `preferences.language` alanlarını birlikte değiştiriyor. Hangi MongoDB garantisi bu yerleşimi yararlı kılar?",[135,138,141,144],{"key":136,"text":137},"a","MongoDB her embedded alan için otomatik olarak bir index oluşturur",{"key":139,"text":140},"b","MongoDB her embedded alanı farklı bir shard'a replike eder",{"key":142,"text":143},"c","Tek bir document'taki birden çok alanı güncelleyen yazma, document seviyesinde atomiktir",{"key":145,"text":146},"d","Embedded sub-document'lar 16 MB BSON document limitinden muaftır","MongoDB, tek bir document üzerindeki yazma işleminin, işlem birden çok embedded alanı değiştirse bile atomik olmasını garanti eder. Birlikte değişmesi gereken değerleri tek document'ta tutmak bu nedenle multi-document transaction ihtiyacını önleyebilir. Embedding otomatik index oluşturmaz, alanları shard'lara dağıtmaz ve BSON boyut limitini aşmaz.",{"id":149,"topic":9,"difficulty":132,"body":150,"options":151,"correct_key":142,"explanation":160},"019f87c2-bd32-715f-9443-254d992953e2","MongoDB şema tasarımında \"referencing\" (referans verme) ne anlama gelir?",[152,154,156,158],{"key":136,"text":153},"Bir document'ın tam metnini her collection'da bir kez olacak şekilde iki kez saklamak",{"key":139,"text":155},"Tamamen driver tarafından uygulama belleğinde yapılan, `$lookup` içermeyen bir join kullanmak",{"key":142,"text":157},"Başka bir document'ın `_id`'sini bir alan olarak saklamak ve gerektiğinde o document'ı ayrıca getirmek",{"key":145,"text":159},"Bir alanı başka bir collection'da kullanılan adla eşleşecek şekilde yeniden adlandırmak","Referencing, ilişkili veriyi ayrı bir document\u002Fcollection'da tutar ve o document'ın `_id`'sini (ya da başka bir tanımlayıcı alanı) saklayarak ona bağlanır; ilişkili veriyi getirmek için ek bir sorgu (ya da `$lookup`) gerekir — veriyi doğrudan gömmenin tersidir.",{"id":162,"topic":9,"difficulty":163,"body":164,"options":165,"correct_key":136,"explanation":174},"019f87c2-bd32-7f31-b96e-a047f4420c63",2,"Bir `blogPost` document'ının, neredeyse her zaman post ile birlikte okunan ve nadiren tek başına sorgulanan az sayıda `comments` (yorum) saklaması gerekiyor. Hangi yaklaşım en uygun?",[166,168,170,172],{"key":136,"text":167},"Yorumları blogPost document'ının içine bir array olarak göm",{"key":139,"text":169},"Her yorumu kendi ayrı üst düzey veritabanında, kendi bağlantısıyla sakla",{"key":142,"text":171},"Her yorumu ayrı bir `comments` collection'ında `_id` ile referansla ve her okumada `$lookup` yap",{"key":145,"text":173},"Yorumları yalnızca harici bir full-text arama motorunda sakla, asla MongoDB'de değil","Küçük, sınırlı sayıda ve parent ile birlikte okunan bir ilişki (one-to-few) embedding'in klasik durumudur: ek bir sorgudan kaçınır ve birlikte kullanılan veriyi bir arada tutar. Referencing, küçük ve her zaman post ile okunan bir veri için gereksiz lookup ekler.",{"id":176,"topic":9,"difficulty":163,"body":177,"options":178,"correct_key":145,"explanation":187},"019f87c2-bd33-786e-b1a0-b55f1cc8ed78","Bir `user` document'ı teorik olarak o kullanıcının tüm `orders` (siparişler) verisini gömebilir, ama aktif tek bir kullanıcı yıllar içinde milyonlarca sipariş verebilir. Hangi tasarım daha güvenlidir?",[179,181,183,185],{"key":136,"text":180},"Tüm siparişleri user document'ına göm; MongoDB array'i şeffaf şekilde sayfalar",{"key":139,"text":182},"Yalnızca kullanıcının en sevdiği 3 siparişi göm, geri kalanını sessizce at",{"key":142,"text":184},"Siparişleri göm ama bu tek collection için document boyutu limitini devre dışı bırak",{"key":145,"text":186},"Siparişleri referansla: her siparişi kendi collection'ında, kullanıcıya geri işaret eden bir `userId` alanıyla sakla","Sınırsız büyüyen bir one-to-many ilişki referencing ile modellenmelidir: her sipariş kendi collection'ında, kullanıcıya geri referans veren bir `userId` alanıyla yaşar; böylece user document'ı küçük kalır ve siparişler normal şekilde sorgulanıp sayfalanabilir. MongoDB gömülü array'leri otomatik sayfalamaz ve document boyutu limiti devre dışı bırakılamaz.",{"id":189,"topic":9,"difficulty":132,"body":190,"options":191,"correct_key":139,"explanation":200},"019f87c2-bd35-739a-ae06-28c17839bb57","MongoDB'de tek bir BSON document'ın maksimum boyutu nedir?",[192,194,196,198],{"key":136,"text":193},"Varsayılan WiredTiger sayfa boyutuyla eşleşen 1 MB",{"key":139,"text":195},"Storage engine'den bağımsız olarak zorlanan sabit bir limit olan 16 MB",{"key":142,"text":197},"64 MB, ama yalnızca array içeren document'lar için",{"key":145,"text":199},"Sabit bir limit yoktur; kullanılabilir RAM'e bağlıdır","MongoDB her BSON document için sabit 16 MB'lık bir limit uygular; bu esasen document'ların ağ üzerinden verimli gönderilmesini sağlamak ve sınırsız büyümeyi caydırmak içindir. Bu limit sabittir ve storage engine ya da kullanılabilir belleğe bağlı değildir.",{"id":202,"topic":9,"difficulty":163,"body":203,"options":204,"correct_key":142,"explanation":213},"019f87c2-bd36-727d-b411-fd89a038482a","Bir geliştirici tek bir document üzerindeki gömülü `logs` array'ine sürekli yeni öğe ekliyor ve sonunda bir update başarısız oluyor. En olası sebep nedir?",[205,207,209,211],{"key":136,"text":206},"MongoDB varsayılan olarak array'leri 100 elemanla sınırlar",{"key":139,"text":208},"`logs` alan adı rezervedir ve bir array içinde kullanılamaz",{"key":142,"text":210},"Update, document'ın 16 MB'lık BSON boyut limitini aşmasına neden olacaktı",{"key":145,"text":212},"Array'ler document'ın ilk insert'inden sonra güncellenemez","Gömülü bir array'e sürekli ekleme yapmak tüm document'ı büyütür. MongoDB, document'ın 16 MB BSON limitini aşmasına neden olacak update'i reddeder; dolayısıyla limit üstü sürüm başarıyla saklanmaz. Bu, sınırsız array'lerin temel risklerinden biridir.",{"fields":215,"seniorities":391,"interview_shapes":392,"locales":397,"oauth":399,"question_count":402,"coach_enabled":403,"jd_match_enabled":403},[216,241,261,278,302,315,324,343,365,372,378,385],{"key":217,"name_tr":218,"name_en":218,"sort":132,"specializations":219},"backend","Backend",[220,223,226,229,232,235,238],{"key":221,"name":222,"field":217},"general","Genel",{"key":224,"name":225,"field":217},"go","Go",{"key":227,"name":228,"field":217},"python","Python",{"key":230,"name":231,"field":217},"java","Java",{"key":233,"name":234,"field":217},"csharp","C#\u002F.NET",{"key":236,"name":237,"field":217},"nodejs","Node.js",{"key":239,"name":240,"field":217},"php","PHP",{"key":242,"name_tr":243,"name_en":243,"sort":163,"specializations":244},"frontend","Frontend",[245,246,249,252,255,258],{"key":221,"name":222,"field":242},{"key":247,"name":248,"field":242},"javascript","JavaScript",{"key":250,"name":251,"field":242},"typescript","TypeScript",{"key":253,"name":254,"field":242},"react","React",{"key":256,"name":257,"field":242},"vue","Vue",{"key":259,"name":260,"field":242},"angular","Angular",{"key":262,"name_tr":263,"name_en":263,"sort":264,"specializations":265},"fullstack","Fullstack",3,[266,267,268,269,270,271,272,273,274,275,276,277],{"key":221,"name":222,"field":262},{"key":224,"name":225,"field":217},{"key":227,"name":228,"field":217},{"key":230,"name":231,"field":217},{"key":233,"name":234,"field":217},{"key":236,"name":237,"field":217},{"key":239,"name":240,"field":217},{"key":247,"name":248,"field":242},{"key":250,"name":251,"field":242},{"key":253,"name":254,"field":242},{"key":256,"name":257,"field":242},{"key":259,"name":260,"field":242},{"key":279,"name_tr":280,"name_en":280,"sort":281,"specializations":282},"devops-cloud","DevOps \u002F Cloud",4,[283,284,287,290,293,296,299],{"key":221,"name":222,"field":279},{"key":285,"name":286,"field":279},"aws","AWS",{"key":288,"name":289,"field":279},"gcp","GCP",{"key":291,"name":292,"field":279},"azure","Azure",{"key":294,"name":295,"field":279},"kubernetes","Kubernetes",{"key":297,"name":298,"field":279},"terraform","Terraform",{"key":300,"name":301,"field":279},"linux","Linux",{"key":303,"name_tr":304,"name_en":304,"sort":305,"specializations":306},"ai-engineer","AI Engineer",5,[307,308,309,312],{"key":221,"name":222,"field":303},{"key":227,"name":228,"field":303},{"key":310,"name":311,"field":303},"llm-rag","LLM\u002FRAG",{"key":313,"name":314,"field":303},"mlops","MLOps",{"key":5,"name_tr":6,"name_en":316,"sort":317,"specializations":318},"Database",6,[319,320,321,322,323],{"key":221,"name":222,"field":5},{"key":124,"name":125,"field":5},{"key":121,"name":122,"field":5},{"key":117,"name":118,"field":5},{"key":127,"name":128,"field":5},{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"mobile","Mobil","Mobile",7,[330,331,334,337,340],{"key":221,"name":222,"field":325},{"key":332,"name":333,"field":325},"ios-swift","iOS (Swift)",{"key":335,"name":336,"field":325},"android-kotlin","Android (Kotlin)",{"key":338,"name":339,"field":325},"flutter","Flutter",{"key":341,"name":342,"field":325},"react-native","React Native",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"security","Güvenlik","Security",8,[349,350,353,356,359,362],{"key":221,"name":222,"field":344},{"key":351,"name":352,"field":344},"appsec","AppSec",{"key":354,"name":355,"field":344},"offensive-pentest","Offensive \u002F Pentest",{"key":357,"name":358,"field":344},"cloud-security","Cloud Security",{"key":360,"name":361,"field":344},"devsecops","DevSecOps",{"key":363,"name":364,"field":344},"blue-team-incident","Blue Team \u002F Incident",{"key":366,"name_tr":367,"name_en":368,"sort":369,"specializations":370},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[371],{"key":221,"name":222,"field":366},{"key":373,"name_tr":374,"name_en":374,"sort":375,"specializations":376},"data-engineer","Data Engineer",10,[377],{"key":221,"name":222,"field":373},{"key":379,"name_tr":380,"name_en":381,"sort":382,"specializations":383},"game-dev","Oyun Geliştirme","Game Development",11,[384],{"key":221,"name":222,"field":379},{"key":386,"name_tr":387,"name_en":387,"sort":388,"specializations":389},"ml-engineer","ML Engineer",12,[390],{"key":221,"name":222,"field":386},[14,15,16],{"junior":393,"mid":395,"senior":396},{"questions":394,"median_sec":3},20,{"questions":394,"median_sec":3},{"questions":394,"median_sec":3},[10,398],"en",[400,401],"google","github",21750,true]