如何解决mongodb 将对象添加到对象数组中
我正在尝试将元素添加到对象数组中,但是我在添加超过 1 个对象时遇到问题。
这是我的群组模型
const userSchema = mongoose.Schema({
name: {type: String,required: true},password: {type: String,description: {type: String,scope: String,groupTeacher: {
type: mongoose.Types.ObjectId,ref: 'users',},quizzes:[
{
_id: mongoose.Types.ObjectId,name: String,tier: Number,category: String,questions:[
{
_id: mongoose.Types.ObjectId,title: String,question: String,correctAnswer: String,answer1: String,answer2: String,answer3: String,answer4: String
}
],usersAttempted:[
{
_id: {
type: mongoose.Types.ObjectId,//userEmail: String,correctAnswers: Number,wrongAnswers: Number,answers: [{
questionTitle: String,usersAnswer: String
}]
我想将元素添加到“usersAttempted”对象数组中。 我对“答案”部分有疑问。问题是有很多问题的答案,但是,我只能添加 1 个问题的答案。
我就是这样做的。
const result = await groupsModel.updateOne({
"_id": groupId,"quizzes._id": quizId,"quizzes.usersAttempted._id": {$ne: userId}
},{
$addToSet:{
"quizzes.$.usersAttempted":{
_id:userId,correctAnswers: questionsCorrect,wrongAnswers: questionsWrong,answers:{
questionTitle: answers[0].questionTitle,correctAnswer: answers[0].correctAnswer,usersAnswer: answers[0].usersAnswer
}
}}});
答案是一组对象
感谢您的帮助。
编辑:#1
小说明:
我有一组对象,我想将它们添加到“usersAttempted”中,但在添加 1 个以上的答案时遇到问题。
编辑:#2
我设法将对象数组添加到集合中,但它是通过索引完成的。
const result = await groupsModel.updateOne({
"_id": groupId,answers:[{
questionTitle: answers[0].questionTitle,usersAnswer: answers[0].usersAnswer
},{
questionTitle: answers[1].questionTitle,correctAnswer: answers[1].correctAnswer,usersAnswer: answers[1].usersAnswer
},{
questionTitle: answers[2].questionTitle,correctAnswer: answers[2].correctAnswer,usersAnswer: answers[2].usersAnswer
}]
}}});
现在我想找到一种添加具有 x 个对象的数组的方法。
解决方法
尝试时会发生什么:
$addToSet:{
"quizzes.$.usersAttempted":{
_id:userId,correctAnswers: questionsCorrect,wrongAnswers: questionsWrong,answers
}}});
在我看来,您将添加整个答案数组...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。