我有新闻文章和类别模式,简化如下。我希望能够返回包含给定类别名称的所有文章。显然我可以通过类别ObjectId _id进行搜索,但我希望能够按category.name进行搜索。
var ArticleSchema = new Schema({
title: String,
body: String,
categories: [{
type: Schema.Types.ObjectId, ref: 'Category'
}]
});
var CategorySchema = new mongoose.Schema({
name: { type: String, unique: true },
desc: String
});
这可能吗?这是一个在类别集合上执行搜索以返回id然后在文章集合上返回文章的问题(这似乎效率低下)或者我是否需要重新编写我的架构?提前谢谢。
答案 0 :(得分:1)
我不知道您的类别集合中包含哪些数据,但对我来说,您有两种选择:
在文章中嵌入类别 要么 在类别中使用自定义ID,因此您的类别ID应该是您的类别名称。