У меня есть 2 коллекции, в первой хранятся аниме, просмотренные каждым пользователем, их статус и т. Д .:
const listSchema = mongoose.Schema({
user: {
type: Schema.Types.ObjectId,
ref: 'user'
},
animes: [{
_id: false,
anime: {
type: Schema.Types.ObjectId,
ref: 'anime',
unique: true
},
status: String,
episodes: Number,
rating: Number
}]
});
, а во второй хранятся все аниме и соответствующая информация.Я хочу показать эту вторую коллекцию, но добавив поля status
и episodes
, которые заполнены из списка вошедшего в систему пользователя.
Я пробовал следующее:
Anime.aggregate([
{
$lookup: {
'from': 'lists',
localField: '_id',
foreignField: 'animes.anime',
'as': 'name'
},
},
{
$unwind: '$animes'
},
{
$project:{
status:'$lists.animes.status'
}
}
]
)
, ноон возвращает пустой массив.Я также не знаю, как фильтровать по userId
, видя, как _id
находится в чужой коллекции.