У меня есть проект, над которым я работаю. У меня есть схема комментариев, схема лайков и схема блога. Все три объявлены как отдельные схемы, но схема лайков и комментариев затем вкладывается в схему блогов как дочерние элементы, то есть комментарии: [CommentSchema]. Теперь у меня есть страница, на которой, когда кто-то нажимает на блог, отображаются все комментарии вместе с блогом. Это код, который получает блог Blog.findById(id).populate('user', 'username').exec(function(err, blog). Теперь в массиве комментариев есть ключ с именем commOwner, который ссылается на objectid из другой схемы, называемой пользователем, точно так же, как схема блога также имеет ссылочный ключ, как вы можете видеть из кода Я пытаюсь отобразить граватар и имя пользователя каждого человека, который оставил комментарий, на основе ссылочного ключа commOwner, который находится в схеме комментариев но я не знаю, как это сделать. Я также хочу иметь возможность заполнять имена пользователей и граватар тех, кто комментировал блог, в том же коде, что и для блога. Пожалуйста, помогите мне с этим , ниже код для всех моих схем
'use strict';
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
/*Comment schema*/
var CommentSchema = new Schema({
commOwner: {
type: Schema.ObjectId,
ref: 'User'
},
commbody: {
type: String,
default: '',
trim: true,
//required: 'Comment cannot be blank'
},
updated: {
type: Date,
default: Date.now
}
});
/**
* Likes Schema
*/
var LikeSchema = new Schema({
score : {
type: Number,
default: 0
},
user: {
type: Schema.ObjectId,
ref: 'User'
}
});
/**
* Blog Schema
*/
var BlogSchema = new Schema({
created: {
type: Date,
default: Date.now
},
title: {
type: String,
default: '',
trim: true,
required: 'Title cannot be blank'
},
content: {
type: String,
default: '',
trim: true
//required: 'Content cannot be blank'
},
user: {
type: Schema.ObjectId,
ref: 'User'
},
comments: [CommentSchema],
likes: [LikeSchema]
});
mongoose.model('Blog', BlogSchema);