我正在构建一个博客站点(使用尖角位于前面,节点位于后面,并使用mongoDB),在该站点中要显示与特定类别相对应的博客。
我对博客有3个不同的类别。我创建了两个集合:一个用于类别,另一个用于博客。在博客集合中,我想使用一个名为c_id的字段,该字段应等于类别集合的ID。因此,当我单击特定类别时,它仅显示该类别的博客。
答案 0 :(得分:0)
在Blog收集架构中,您可以将字段定义为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"
}
}
])