所以我正在构建一个web应用程序,使用mongodb _ mongoose,我选择这个数据库是因为我以前用过它,它是一个非常容易和快速的上手。我现在遇到一些用例,我认为关系数据库会更好。但我在这里是为了在我为mongo删除所有数据库代码之前,看看我是否能找到一个使用mongo数据库的修复程序。
我有三个集合,一个是用户集合,一个是挂起的作业集合,一个是已完成的作业集合。我需要运行一个挂起的作业,然后将其从集合中删除,并创建一个已完成的作业条目。这两个作业集合都通过我的用户模型上的对象ID引用列表字段连接到用户。我知道如何获取特定用户的所有挂起的作业和已完成的作业。
const resp = await User.findOne({username:username}).populate(['pendingJobs', 'completedJobs'])
但是,如何获取特定作业的用户?
- 编辑
挂起作业模型
const pendingJobModel = new mongoose.Schema({
date:{type:String, required: true, unique:true},
startTime:{type:String, required: true},
endTime:{type:String, required: true},
courseList:{type:[String], required: true},
member:{type:String},
clubUsername:{type:String, required: true},
clubPassword:{type:{token:String, iv:String}, required:true},
proxy:{type:Boolean, required: true, default:false},
active:{type:Boolean, required: true, default:false},
},{collection:'pendingjobs'})
module.exports = mongoose.model('PendingJob', pendingJobModel)
已完成作业模型
const completedJobModel = new mongoose.Schema({
date:{type:String, required: true, unique:true},
successful:{type:String, required: true},
time:{type:String},
course:{type:String},
member:{type:String},
},{collection:'completedjobs'})
module.exports = mongoose.model('CompletedJob', completedJobModel)
用户模型
const userModel = new mongoose.Schema({
username:{type:String, required: true, unique:true},
password:{type:String, required: true,},
refreshToken:{type:String, default: ''},
proxyConfig:{type: mongoose.Types.ObjectId, ref:'Proxy'},
pendingJobs:{type: [mongoose.Types.ObjectId], ref:'PendingJob'},
completedJobs:{type: [mongoose.Types.ObjectId], ref:'CompletedJob'}
},{collection:'users'})
module.exports = mongoose.model('User', userModel)
感谢如此peeps的帮助在先进!!
1条答案
按热度按时间h79rfbju1#
您可以只根据
pendingJobs
/completedJobs
属性查询用户: