#node.js #mongodb #mongoose #discord.js #mongoose-schema
#node.js #mongodb #мангуст #discord.js #мангуст-схема
Вопрос:
У меня есть такая схема. При использовании команды я хочу, чтобы туда добавлялись новые элементы
const userSchema = new mongoose.Schema({ _id: { //user id type: String, required: true, }, books: [{ //book that user uses _id: { //book id type: Number, required: true, }, lessons: [{ //lessons of the book with progress type: String, required: true, }], }], })
Я пытаюсь добавить их таким образом.
await userSchema.findByIdAndUpdate(author.id, { $addToSet: { books: {_id: bookid, lessons: progress} } })
bookid
— значение int увеличивается на единицу. progress
— массив строк
Но в базу записывается только массив уроков, без идентификатора. Когда я добавляю только идентификатор, то добавляется не идентификатор, а массив уроков. Я потратил уже несколько часов и не могу понять, почему он не хочет добавлять все в массив. Пожалуйста, помогите.
Ответ №1:
Попробуйте с $push
оператором:
await userSchema.findByIdAndUpdate(author.id, { $push: { books: { _id: bookid, lessons: progress } } })
Комментарии:
1. Я попробовал, но он по-прежнему вводит данные без идентификатора, только по какой-то причине добавляет массив.
2. Попробуйте
console.log(bookid)
сделать это перед запросом. Может быть, оно равно нулю или не определено.