lecture.js
1.3 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
const mongoose = require('mongoose');
// Define Schemes
const lectureSchema = new mongoose.Schema({
lectureid: { type: String, unique: true },
lecturename: { type: String},
proname: { type: String },
avg_rate: { type: Number }
});
const reviewSchema = new mongoose.Schema({
lectureid: { type: String, required: true, unique: true },
review: { type: String, required: true }
});
// // Create new lecture document
lectureSchema.statics.create = function (payload) {
// this === Model
const lecture = new this(payload);
// return Promise
return lecture.save();
};
// Find All
lectureSchema.statics.findAll = function () {
// return promise
// V4부터 exec() 필요없음
return this.find({});
};
// Find One by lectureid
lectureSchema.statics.findOneBylectureid = function (lectureid) {
return this.findOne({ lectureid });
};
// Update by lectureid
lectureSchema.statics.updateBylectureid = function (lectureid, payload) {
// { new: true }: return the modified document rather than the original. defaults to false
return this.findOneAndUpdate({ lectureid }, payload, { new: true });
};
// Delete by lectureid
lectureSchema.statics.deleteBylectureid = function (lectureid) {
return this.remove({ lectureid });
};
// Create Model & Export
module.exports = mongoose.model('Lecture', lectureSchema);