我希望有人能帮助我解决这个问题。我正在尝试填充 subSchema,但我没有运气。
我有一个 replySchema
、commentSchema
和一个 UserSchema
。
replySchema
是 commentSchema
的子文档,我想用来自 userSchema
的用户详细信息填充它们
我的问题是下面的代码没有填充我的 replySchema
:
REPLY-SCHEMA 和 COMMENT-SCHEMA
const replySchema = new mongoose.Schema(
{
replyComment: {
type: String,required: [true,'Reply comment cannot be empty'],},createdAt: {
type: Date,default: Date.now(),user: {
type: mongoose.Schema.ObjectId,ref: 'User','Comment must belong to a user'],{
timestamps: true,}
);
const commentSchema = new mongoose.Schema(
{
comment: {
type: String,'Comment cannot be empty'],// createdAt: Number,// updatedAt: Number,post: {
type: mongoose.Schema.ObjectId,ref: 'Post','Comment must belong to a Post'],replies: [replySchema],//replySchema sub-document - is this the right way?
},{
// timestamps: { currentTime: () => Math.floor(Date.now() / 1000) },toJSON: { virtuals: true },toObject: { virtuals: true },}
);
replySchema.pre(/^find/,function (next) {
this.populate({
path: 'user',select: 'name role avatar',});
next();
});
commentSchema.pre(/^find/,});
next();
});
const Comment = mongoose.model('Comment',commentSchema);
module.exports = Comment;
用户架构
const userSchema = new mongoose.Schema(
{
name: {
type: String,trim: true,'Please insert your name'],avatar: {
type: Object,role: {
type: String,enum: ['user','admin'],default: 'user',{
toJSON: { virtuals: true },}
);
const User = mongoose.model('User',userSchema);
module.exports = User;
非常感谢您抽出宝贵时间!