-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpopulate.js
More file actions
140 lines (123 loc) · 4.14 KB
/
populate.js
File metadata and controls
140 lines (123 loc) · 4.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import { readFile } from "fs/promises";
import mongoose from "mongoose";
import dotenv from "dotenv";
dotenv.config();
import Level from "./models/LevelModel.js";
import User from "./models/UserModel.js";
import Teacher from "./models/TeacherModel.js";
import School from "./models/SchoolModel.js";
import Subject from "./models/SubjectModel.js";
import Schedule from "./models/ScheduleModel.js";
// import { schedule } from "./utils/mockData.js";
import { data, schoolData, teachers } from "./utils/mockData.js";
// import { data } from "./utils/mockData.js";
try {
await mongoose.connect(process.env.MONGO_URL);
// let schedules = await Schedule.updateMany({}, { schedule: schedule });
// // console.log(schedules)
// for (const sh of schedules) {
// // const newSch=await Schedule.create(sh)
// // sh.schedule = schedule;
// // sh.save();
// console.log(sh);
// }
// const subjects = await Teacher.find({}); // Find all subjects
// for (const teacher of subjects) {
// const su = Teacher.find({ _id: teacher._id });
// await su.findOneAndUpdate(
// { _id: teacher._id }, // Find the document by its ID
// { $set: { subjects: [] } } // Set subjects array to an empty array
// );
// }
// const subjects = await Subject.find({}); // Find all subjects
// for (const subject of subjects) {
// const su = Subject.find({ _id: subject._id });
// await su.deleteOne(); // Remove each subject individually
// }
// console.log(`${subjects.length} subjects removed successfully`);
// for (const lev of levels) {
// const le = await Level.findById(lev);
// const sch = [];
// for (let i = 0; i < 6; i++) {
// let temp = [];
// for (let h = 0; h < le.dailyLectures; h++) {
// temp.push(le.subjects[0]);
// }
// sch.push(temp);
// }
// await Schedule.create({
// name: le.name,
// ownerType: "level",
// ownerId: le._id,
// schedule: sch,
// });
// }
const school = "662f231e95a62059e02914fd";
console.log(school);
for (let ele = 0; ele < data.length; ele++) {
const createdLevel = await Level.create({
...data[ele].level,
school: school,
});
console.log(createdLevel);
const schedule = await Schedule.create({
name: createdLevel.name,
ownerType: "level",
ownerId: createdLevel._id,
});
createdLevel.schedule = schedule._id;
createdLevel.save();
const subjects = data[ele].subjects;
for (const su in subjects) {
const createdSubject = await Subject.create({
...subjects[su],
level: createdLevel._id,
});
const teacher = await Teacher.findById(subjects[su].teacher);
createdLevel.subjects.push(createdSubject._id);
teacher.subjects.push(createdSubject._id);
createdLevel.save();
teacher.save();
}
}
// for (let ele = 0; ele < teachers.length; ele++) {
// const createdLevel = await Teacher.create({
// ...teachers[ele],
// school: school,
// role: 'teacher'
// });
// console.log(createdLevel);
// const schedule = await Schedule.create({
// name: createdLevel.name,
// ownerType: "teacher",
// ownerId: createdLevel._id,
// });
// createdLevel.schedule = schedule._id;
// createdLevel.save();
// }
// const subjects = await Subject.find();
// for (const s of subjects) s.save();
console.log("Success!!!");
process.exit(0);
} catch (error) {
console.log(error);
process.exit(1);
}
async function removeAllSubjectReferences() {
const teachers = await Teacher.find(); // Find all teacher documents
// Iterate over each teacher document
for (const teacher of teachers) {
// Update the teacher document to remove subject references
const ts = await Teacher.findById({ _id: teacher._id });
ts.subjects = [];
ts.save();
}
}
async function removeAllSubjects() {
const subjects = await Subject.find({}); // Find all subjects
for (const subject of subjects) {
const su = Subject.find({ _id: subject._id });
await su.deleteOne(); // Remove each subject individually
}
console.log(`${subjects.length} subjects removed successfully`);
}