【发布时间】:2021-03-03 23:15:00
【问题描述】:
我正在尝试将元素添加到对象数组中,但我在添加超过 1 个对象时遇到问题。
这是我的群组收藏的模型
const userSchema = mongoose.Schema({
name: {type: String, required: true},
password: {type: String, required: true},
description: {type: String, required: true},
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,
ref: 'users',
},
//userEmail: String,
correctAnswers: Number,
wrongAnswers: Number,
answers: [{
questionTitle: String,
correctAnswer: 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,
"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
},
{
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 个对象的数组。
【问题讨论】:
-
为什么只添加一个答案而不是整个数组?
-
因为我不确定如何添加整个数组:D 这就是问题的原因
-
发布实际代码而不是代码图像会很有帮助。使用编辑器工具栏上的 {} 按钮将其指定为代码块
-
我试图在网上找到如何添加整个数组。但我什么也找不到。
标签: javascript arrays mongodb express mern