// This is a playground for MongoDB for VS Code Extension. // It creates 6 collections that each contain 1 document. All 6 collections // contain the same information but with different field names. This is to // demonstrate the different ways that MongoDB can store the same data and what // impact your design decisions have on document size (and therefore how many // documents can fit in the database cache → performance). use('FieldNames'); const schema1 = db.getCollection('schema1'); const schema2 = db.getCollection('schema2'); const schema3 = db.getCollection('schema3'); const schema4 = db.getCollection('schema4'); const schema5 = db.getCollection('schema5'); const schema6 = db.getCollection('schema6'); schema1.drop(); schema2.drop(); schema3.drop(); schema4.drop(); schema5.drop(); schema6.drop(); let doc = {}; for (let outer = 1; outer <= 10; outer++) { for(let middle = 1; middle <= 10; middle++) { for(let inner = 1; inner <= 10; inner++) { doc[`top_level_name_${outer}_middle_level_name_${middle}_bottom_level_name_${inner}`] = (inner % 2 !== 0) ? "Your data goes here" : ""; } } } schema1.insertOne(doc); doc = {}; for (let outer = 1; outer <= 10; outer++) { let middleLevel = {}; for(let middle = 1; middle <= 10; middle++) { let innerLevel = {}; for(let inner = 1; inner <= 10; inner++) { innerLevel[`bottom_level_name_${inner}`] = (inner % 2 !== 0) ? "Your data goes here" : ""; } middleLevel[`middle_level_name_${middle}`] = innerLevel; } doc[`top_level_name_${outer}`] = middleLevel; } schema2.insertOne(doc); doc = {}; for (let outer = 1; outer <= 10; outer++) { let middleLevel = {}; for(let middle = 1; middle <= 10; middle++) { let innerLevel = {}; for(let inner = 1; inner <= 10; inner++) { innerLevel[`bottom_level_name_${inner}`] = (inner % 2 !== 0) ? "Your data goes here" : null; } middleLevel[`middle_level_name_${middle}`] = innerLevel; } doc[`top_level_name_${outer}`] = middleLevel; } schema3.insertOne(doc); doc = {}; for (let outer = 1; outer <= 10; outer++) { let middleLevel = {}; for(let middle = 1; middle <= 10; middle++) { let innerLevel = {}; for(let inner = 1; inner <= 10; inner++) { if (inner % 2 !== 0) { innerLevel[`bottom_level_name_${inner}`] = "Your data goes here"; } } middleLevel[`middle_level_name_${middle}`] = innerLevel; } doc[`top_level_name_${outer}`] = middleLevel; } schema4.insertOne(doc); doc = {}; for (let outer = 1; outer <= 10; outer++) { let middleLevel = {}; for(let middle = 1; middle <= 10; middle++) { let innerLevel = {}; for(let inner = 1; inner <= 10; inner++) { if (inner % 2 !== 0) { innerLevel[`bottomLevelName${inner}`] = "Your data goes here"; } } middleLevel[`middleLevelName${middle}`] = innerLevel; } doc[`topLevelName${outer}`] = middleLevel; } schema5.insertOne(doc); doc = {}; for (let outer = 1; outer <= 10; outer++) { let middleLevel = {}; for(let middle = 1; middle <= 10; middle++) { let innerLevel = {}; for(let inner = 1; inner <= 10; inner++) { if (inner % 2 !== 0) { innerLevel[`c${inner}`] = "Your data goes here"; } } middleLevel[`b${middle}`] = innerLevel; } doc[`a${outer}`] = middleLevel; } schema6.insertOne(doc);