我无法在我的架构中添加元素 ($addToSet)

I can't add elements in my schema ($addToSet)

我有这样的方案。使用命令时,我希望在那里添加新项目

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 - 字符串数组

但是只写了一组课文到base,没有id。 当我只添加 id 时,不会添加 id,而是添加一系列课程。 我已经花了几个小时了,但我不明白为什么它不想将所有内容都添加到数组中。请帮忙。

尝试使用 $push 运算符:

await userSchema.findByIdAndUpdate(author.id, {
  $push: { 
    books: {
      _id: bookid,
      lessons: progress
    }
  } 
})