1

我有下面简化的新闻文章和类别模式。我希望能够 e 返回包含给定类别名称的所有文章。显然,我可以按类别 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,然后在文章集合上执行另一个搜索以返回文章(这似乎效率低下)还是我需要重新设计我的架构?提前致谢。

4

1 回答 1

1

我不知道您的类别集合有哪些数据,但对我来说,您有 2 个选项:

在您的文章中嵌入类别或在类别中使用自定义 ID,因此您的类别 ID 应该是您的类别名称。

于 2015-03-12T10:45:19.847 回答