我正在使用Node express和mongoDB创建事件管理应用程序。基本上,它具有3个模型,分别为User
,Programme
和Event
。 Programme
可能包含多个事件,例如Sports-Meet是一个Programme。它包含以下事件:
1. Welcoming Chiefguest
2. Silence Pray
3. Hoist the Flag
4. Mark Fast
5. Lightning the Torch
6. Events
7. Interval Programme
8. Prize giving
9. Vote of Thanks
这些事件具有order属性,以确定在哪个事件之后的哪个事件。基本上,这是运动会计划中事件的顺序。但是用户可以在事件进行过程中更改事件顺序,那时其他观众正在观看事件(议程)列表,而用户将事件的顺序更改(例如,将电筒从5更改为4),立即显示给观众。如何在API级别执行此请求?
以下是上述模型的架构:
UserModel.js
const mongoose = require('mongoose');
const UserSchema = mongoose.Schema({
name: {type:String},
email: {type:String},
password: {type:String}
},
{timestamps:true}
);
module.exports = mongoose.model('User', UserSchema);
ProgrammeModel.js
const mongoose = require('mongoose');
const programmeSchema = mongoose.Schema({
name: { type: String, required: true },
timefrom: { type :Date,required: true },
timeto: { type :Date,required: true },
status: { type: String, required: true },
venue: { type: String, required: true },
timetype: { type: Number, required: true },
protype: { type: String, required: true },
userid:{ type:mongoose.Schema.Types.ObjectId,ref : 'User', required: false },
logo :{ type: String, required: true }
});
module.exports = mongoose.model('Programme', programmeSchema);
EventModel.js
const mongoose = require('mongoose');
const eventSchema = mongoose.Schema({
name: { type: String, required: true },
timefrom: { type :Date,required: true },
timeto: { type :Date,required: true },
status: { type: String, required: true },
proid: { type:mongoose.Schema.Types.ObjectId,ref :'Programe', required: true},
proorder: { type: String, required: true }
});
module.exports = mongoose.model('Event', eventSchema);