Я новичок в MERN, я создал систему, чтобы учителя проверяли задания. Моя схема выглядит так
const mongoose = require('mongoose')
const xyzSchema = new mongoose.Schema({
user:{
type:mongoose.Schema.Types.ObjectId,
ref:'user_collections'
},
assignments:[{
title_assignment:{
type:String,
required:true
},
description_assignment:{
type:String,
required:true
},
created_at:{
type:Date,
required:true,
default:Date.now()
},
files:[],
submitted:[{
user:{
type:mongoose.Schema.Types.ObjectId,
ref:'user_collections'
},
files:[],
created_at:{
type:Date,
required:true,
default:Date.now()
},
checked:{
type:Boolean,
default:false
}
}],
due_dt:{
type:Date,
required:true
}
}],
})
module.exports = mongoose.model('abc',xyzSchema)
При нажатии проверено на веб-интерфейсе, я не хочу обновлять значение «checked» с «false» на true.
Мой маршрут выглядит так
router.put('/assignments/check',
auth,
async(req,res)=>{
try {
let check = await Classroom.findOne(
{"assignments._id":req.body.assignment_id,"assignments.submitted.user":req.body.user_id},
{$set:{"assignments.$.submitted.$.checked":"true"}}}
)
res.json(check)
} catch (error) {
console.error(error)
}
})
Этот код у меня не работает. Кто-нибудь может мне что-нибудь предложить? Что я хочу сделать, так это 1) Найти назначение с использованием идентификатора и переданного массива назначений с использованием идентификатора пользователя внутри него 2) Измените значение "checked" для этого пользователя на "true"