[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en: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","Database","","mongodb-schema-modeling","Mongodb Schema Modeling","en",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,"A `user` document embeds a `preferences` sub-document. One update changes `preferences.theme` and `preferences.language` together. What MongoDB guarantee makes this layout useful?",[135,138,141,144],{"key":136,"text":137},"a","MongoDB automatically creates an index for every embedded field",{"key":139,"text":140},"b","MongoDB replicates each embedded field to a different shard",{"key":142,"text":143},"c","A write that updates multiple fields in one document is atomic at the document level",{"key":145,"text":146},"d","Embedded sub-documents are exempt from the 16 MB BSON document limit","MongoDB guarantees atomicity for a write operation on a single document, even when that operation changes multiple embedded fields. Keeping values that must change together in one document can therefore avoid a multi-document transaction. Embedding does not create indexes automatically, distribute fields across shards, or bypass the BSON size limit.",{"id":149,"topic":9,"difficulty":132,"body":150,"options":151,"correct_key":142,"explanation":160},"019f87c2-bd32-715f-9443-254d992953e2","In MongoDB schema design, what does \"referencing\" mean?",[152,154,156,158],{"key":136,"text":153},"Storing the full text of a document twice, once in each collection",{"key":139,"text":155},"Using a `$lookup`-free join performed entirely by the driver in application memory",{"key":142,"text":157},"Storing another document's `_id` as a field and fetching that document separately when needed",{"key":145,"text":159},"Renaming a field so it matches the name used in another collection","Referencing keeps related data in a separate document\u002Fcollection and links to it by storing that document's `_id` (or another identifying field), requiring a follow-up query (or `$lookup`) to fetch the related data — the opposite of embedding it inline.",{"id":162,"topic":9,"difficulty":163,"body":164,"options":165,"correct_key":136,"explanation":174},"019f87c2-bd32-7f31-b96e-a047f4420c63",2,"A `blogPost` document needs to store a handful of `comments` that are almost always read together with the post and rarely queried on their own. Which approach fits best?",[166,168,170,172],{"key":136,"text":167},"Embed the comments as an array inside the blogPost document",{"key":139,"text":169},"Store each comment in its own top-level database with a dedicated connection",{"key":142,"text":171},"Reference each comment by `_id` in a separate `comments` collection and `$lookup` on every read",{"key":145,"text":173},"Store comments only in an external full-text search engine, never in MongoDB","A small, bounded, read-together-with-the-parent relationship (one-to-few) is the classic case for embedding: it avoids an extra query and keeps the data that's used together stored together. Referencing would add unnecessary lookups for data that's small and always read with the post.",{"id":176,"topic":9,"difficulty":163,"body":177,"options":178,"correct_key":145,"explanation":187},"019f87c2-bd33-786e-b1a0-b55f1cc8ed78","A `user` document could theoretically embed all of that user's `orders`, but a single active user may place millions of orders over years. Which design is safer?",[179,181,183,185],{"key":136,"text":180},"Embed all orders in the user document; MongoDB will paginate the array transparently",{"key":139,"text":182},"Embed only the user's 3 favorite orders and silently discard the rest",{"key":142,"text":184},"Embed the orders but disable the document size limit for this one collection",{"key":145,"text":186},"Reference the orders: store each order in its own collection with a `userId` field pointing back to the user","An unbounded, ever-growing one-to-many relationship should be modeled by referencing: each order lives in its own collection with a `userId` back-reference, so the user document stays small and orders can be queried\u002Fpaginated normally. MongoDB does not auto-paginate embedded arrays, and the document size limit cannot be disabled.",{"id":189,"topic":9,"difficulty":132,"body":190,"options":191,"correct_key":139,"explanation":200},"019f87c2-bd35-739a-ae06-28c17839bb57","What is the maximum size of a single BSON document in MongoDB?",[192,194,196,198],{"key":136,"text":193},"1 MB, matching the default WiredTiger page size",{"key":139,"text":195},"16 MB, a fixed limit enforced regardless of storage engine",{"key":142,"text":197},"64 MB, but only for documents containing arrays",{"key":145,"text":199},"There is no fixed limit; it depends on available RAM","MongoDB enforces a hard 16 MB limit per BSON document, mainly to keep documents efficient to send over the wire and to discourage unbounded growth. This limit is fixed and does not depend on storage engine or available memory.",{"id":202,"topic":9,"difficulty":163,"body":203,"options":204,"correct_key":142,"explanation":213},"019f87c2-bd36-727d-b411-fd89a038482a","A developer keeps pushing new items into an embedded `logs` array on a single document, and eventually an update fails. What is the most likely cause?",[205,207,209,211],{"key":136,"text":206},"MongoDB limits arrays to 100 elements by default",{"key":139,"text":208},"The `logs` field name is reserved and cannot be used inside an array",{"key":142,"text":210},"The update would make the document exceed the 16 MB BSON size limit",{"key":145,"text":212},"Arrays cannot be updated after the document's first insert","Continuously appending to an embedded array grows the whole document. MongoDB rejects the update that would make the document exceed the 16 MB BSON limit, so the oversized version is never stored successfully. This is a key risk of unbounded arrays.",{"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":316,"name_en":6,"sort":317,"specializations":318},"Veritabanı",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},[398,10],"tr",[400,401],"google","github",21750,true]