我有一个有ref :"University"的College模型。在创建学院时,每个学院都有一所大学。
因此,我正在尝试获取大学的uuid与请求查询匹配的所有学院。
因此,我尝试了以下方法:
const myAggregate = College.aggregate([
{
$match: {
language: req.query.language,
display_language: req.query.display_language
}
},
{
$lookup: {
from: 'unis', // UNIVERSITY COLLECTION
pipeline: [
{
$match: {
$expr: {
$eq: ["$uuid", req.query.id]
}
}
}
],
as: 'univ',
},
},
{
$sort: { createdAt: -1 },
},
])因此,当提供查询时,上面的代码不等于大学UUID,它将获取所有学院,但每个学院的univ数组为空。
当uuid等于查询id而不显示univ的空数组时,是否可以只显示学院?
发布于 2021-08-21 05:58:34
你可以做解开来移除空的。
单据参照:https://docs.mongodb.com/manual/reference/operator/aggregation/unwind/
const myAggregate = College.aggregate([
{
$match: {
language: req.query.language,
display_language: req.query.display_language
}
},
{
$lookup: {
from: 'unis', // UNIVERSITY COLLECTION
pipeline: [
{
$match: {
$expr: {
$eq: ["$uuid", req.query.id]
}
}
}
],
as: 'univ',
},
},
{"$unwind":{
path: '$univ',
preserveNullAndEmptyArrays: false}},
{
$sort: { createdAt: -1 },
},
])https://stackoverflow.com/questions/68864052
复制相似问题