即使我已在我的模式中激活toJSON和toObject {virtuals:true}属性,我的虚拟填充区仍遇到问题。
我有一个这样的旅行模型,我想要所有评论
const tourSchema = new mongoose.Schema(
{
name: {
type: String,
required: [true, 'A tour must have a name'],
unique: true,
trim: true,
maxlength: [40, 'A tour name must have less or equal then 40 characters'],
minlength: [10, 'A tour name must have more or equal then 10 characters']
// validate: [validator.isAlpha, 'Tour name must only contain characters']
},
slug: String,
duration: {
type: Number,
required: [true, 'A tour must have a duration']
},
maxGroupSize: {
type: Number,
required: [true, 'A tour must have a group size']
},
difficulty: {
type: String,
required: [true, 'A tour must have a difficulty'],
enum: {
values: ['easy', 'medium', 'difficult'],
message: 'Difficulty is either: easy, medium, difficult'
}
},
ratingsAverage: {
type: Number,
default: 4.5,
min: [1, 'Rating must be above 1.0'],
max: [5, 'Rating must be below 5.0'],
set: val => Math.round(val * 10) / 10 // 4.666666, 46.6666, 47, 4.7
},
ratingsQuantity: {
type: Number,
default: 0
},
price: {
type: Number,
required: [true, 'A tour must have a price']
},
guides: [
{
type: mongoose.Schema.ObjectId,
ref: 'User'
}
]
}
// ,
// {
// toJSON: { virtuals: true },
// toObject: { virtuals: true }
// }
);
tourSchema.set('toObject', { virtuals: true });
tourSchema.set('toJSON', { virtuals: true });
// Virtual Populate
tourSchema.virtual('reviews', {
ref: 'Review',
foreignField: 'tour',
localField: '_id'
});
const Tour = mongoose.model('Tour', tourSchema);
module.exports = Tour;
这是reviewsModel
const reviewsSchema = new mongoose.Schema(
{
review: {
type: String,
required: [true, 'Review cannot be empty !']
},
rating: {
type: Number,
min: 1,
max: 5
},
createdAt: {
type: Date,
default: Date.now
},
tour: {
type: mongoose.Schema.ObjectId,
ref: 'Tour',
required: [true, 'A Review must belong to a tour !']
},
user: {
type: mongoose.Schema.ObjectId,
ref: 'User',
required: [true, 'A Review must belong to a User !']
}
},
{
toJSON: { virtuals: true },
toObject: { virtuals: true }
}
);
const Review = mongoose.model('Review', reviewsSchema);
plz帮我,我已经在stackOverflow上观看了有关此问题的所有问题,但他们都说添加到JSON和toObject,一切都会好起来的。但是我的项目仍然不行...