我正在构建一个博客网站(在前面使用角度,在后面使用节点和mongoDB(,我想在其中显示与其特定类别相对应的博客。
我有 3 个不同的博客类别。我创建了两个集合:一个用于类别,另一个用于博客。在博客集合中,我想使用一个名为 c_id 的字段,该字段应等于类别集合的 id。因此,当我单击特定类别时,它仅显示该类别的博客。
在博客集合架构中,您可以将字段定义为c_id或 categoryId,如下所示:
var BlogSchema = new Schema({
_id: {
type: Schema.Types.ObjectId,
required: true,
auto: true,
},
blogTitle: {
type: String
},
anyField: {
type: String
},
categoryId: {
type: Schema.Types.ObjectId,
ref:"categories", // Name of your category collection
required: true,
},
});
要获取所有博客以及类别名称,您可以尝试按如下方式查询:
db.collection.aggregate([
{
$lookup: {
from: "categories", // Name of the foreign collection
let: { "cId": "$categoryId" },
pipeline:[
{
$match: {
$expr: {
$eq: ["$_id", "$$cId"]
}
}
},
{
$project: {
categoryName: 1
}
}
],
as: "categoryInfo"
}
}
])