У меня есть следующий документ:
const questionSchema = new Schema({
text: { type: String, required: true, unique: true, minLength: 3 },
approved:{type: String, default: false},
ups: [{type: Schema.Types.ObjectId, ref:'User'}],
downs: [{type: Schema.Types.ObjectId, ref:'User'}],
tags: [{type: Schema.Types.ObjectId, ref: 'Tag'}],
answers: [{type: Schema.Types.ObjectId, ref: 'Answer'}],
author: {type: Schema.Types.ObjectId, ref: 'User'}
})
const Question = model('Question', questionSchema);
module.exports = Question;
Когда я пытаюсь получить его, отредактируйте массивы «взлетов» и «падений», а затем сохраните его:
Question.findById(questionId)
.then(q => {
q.downs.remove(userId);
q.ups.push(userId);
q.save()
.catch(e => {
console.log(e);
})
})
Я получаю следующие ошибки как при взлете, так и при падении одновременно:
Ошибка приведения к [ObjectId] для значения "[0]" при пути "downs"
Ошибка приведения к [ObjectId] для значения "[0]" при пути "ups"
Я также пытался с этим кодом, но он выдает ошибку, что я не могу нажать на поле, не являющееся массивом:
Question.findByIdAndUpdate(questionId, {$push: {downs: userId}});
Что я делаю не так?