【发布时间】:2022-01-29 02:44:21
【问题描述】:
我正在从 _id 进行 $lookup。所以结果总是 1 个文档。因此,我希望结果是一个对象,而不是一个包含一项的数组。
let query = mongoose.model('Discipline').aggregate([
{
$match: {
project: mongoose.Types.ObjectId(req.params.projectId)
},
},
{
$lookup: {
from: "typecategories",
localField: "typeCategory",
foreignField: "_id",
as: "typeCategory"
}
},
{
$project: {
title: 1, typeCategory: "$typeCategory[0]"
}
}
]);
这个符号:"$typeCategory[0]" 不起作用。有什么聪明的方法吗?
【问题讨论】:
-
暂时使用
typeCategory:{$arrayElemAt: ["$typeCategory", 0 ]}。有票可以专门解决这个问题jira.mongodb.org/browse/SERVER-27589 -
jira.mongodb.org/browse/SERVER-22384 @s7vr 提到的链接因重复而关闭。这是 OPEN 票。
标签: javascript node.js mongodb mongoose