我有 2 个关于 mongoose 聚合和索引方法的问题

I have 2 issues with mongoose aggregation and index method

我有 2 个问题

第一个:

我正在尝试制定用户应为每个训练营添加 1 条评论的评论架构

代码:

ReviewSchema.index({ bootcamp: 1, user: 1 }, { unique: true });

它不起作用..而且用户仍然可以添加多个评论

第二期:

我正在尝试计算评论的平均评分,但在获取训练营时它没有添加到数据库中

代码:

// Static Method to get the avg rating of reviews and save
ReviewSchema.statics.getAverageRating = async function (bootcampId) {
const obj = await this.aggregate([
{
  $match: { bootcamp: bootcampId },
},
{
  $group: {
    _id: '$bootcamp',
    averageRating: { $avg: '$rating' },
  },
},
]);
try {
await this.model('Bootcamp').findByIdAndUpdate(bootcampId, {
  averageRating: obj[0].averageRating,
});
} catch (err) {
  console.log(err);
}
//Call averageRating after save
ReviewSchema.post('save', async function () {
  await this.constructor.getAverageRating(this.bootcamp);
});
//Call averageRating before remove
ReviewSchema.pre('remove', async function () {
  await this.constructor.getAverageRating(this.bootcamp);
});

** 它不起作用,平均评分永远不会添加到数据库中(作为训练营的字段)**

我按照教程做的,一开始没用,但后来我发现少了一个分号。