【发布时间】:2021-11-01 23:55:52
【问题描述】:
我有一个具有字段 ref 的类模型。
我正在尝试仅获取与查找条件匹配的记录。
所以我做了什么:
{
$lookup: {
from: 'fields',
localField: "field",
foreignField: "_id",
as: 'FieldCollege',
},
},
{
$addFields: {
"FieldCollege": {
$arrayElemAt: [
{
$filter: {
input: "$FieldCollege",
as: "field",
cond: {
$eq: ["$$field.level", req.query.level]
}
}
}, 0
]
}
}
},
如果条件匹配,上面的代码可以正常工作并返回FieldCollege。
但问题是,我只想在 FieldCollege 不为空的情况下返回课程记录。
我对 mongodb 完全陌生。所以我尝试了这样的事情:
{
$match: {
'FieldCollege': { $exists: true, $ne: [] }
}
},
显然这不起作用。
mongodb 是否支持这样的事情,还是我让事情复杂化了?
编辑:
以上代码的结果:
"Classes": [
{
"_id": "613245664c6ea614e001fcef",
"name": "test",
"language": "en",
"year_cost": "3232323",
"FieldCollege":[] // with $unwind
}
],
预期结果:
"Classes": [
// FieldCollege is empty
],
【问题讨论】:
-
您能否发布您的示例数据和预期输出
-
@varman 我更新了我的问题
标签: mongodb express mongoose aggregation-framework