У меня есть 2 схемы, как показано ниже:
Схема сообщения:
let schema = {
id: "post",
свойства: {
content: {type: "string", по умолчанию: ''},
автор: {
тип: "объект",
id: {type: "object"},
аватар: {тип: "строка"},
firstName: {тип: "строка"},
lastName: {тип: "строка"},
статус: {тип: "строка"}
},
хэштег: {тип: 'строка'},
категория: {
тип: "объект",
id: {type: "object"},
name: {type: "string"}
},
изображений: {
тип: "массив",
предметов: {
тип: "объект",
свойства: {
filePath: {type: "string"},
sort: {type: 'string'},
}
}
},
}; * * тысяча шестьдесят-один
Схема отчета:
let schema = {
id: "report",
свойства: {
репортер: {
тип: "объект",
userId: {type: "object"},
firstName: {тип: "строка"},
lastName: {тип: "строка"},
статус: {тип: "строка"}
},
to: {
тип: "объект",
id: {type: "object", ref: 'post'},
typeObject: {type: "string"}
},
reportType: {type: "string"}, // SPAM || FAKE ..
content: {type: "string"}
}
Как я могу использовать $ lookup или $ populate для получения данных из таблицы post так, чтобы: post._id = report.to.id
Я пишу так, он возвращает неправильно, как требуется:
findPromise = model.aggregate ([
{ $lookup:{from:"reports",localField:"_id", foreignField:"to.id", as:"res"}},
{
$match: query,
},
{ $skip: skip },
{ $limit: pageSize * 1 },
])
Пожалуйста, помогите мне,
Спасибо всем.