MongoDB在引用的对象中按字段搜索/查找

时间:2013-06-24 04:15:36

标签: mongodb mongoose

我有新闻文章和类别模式,简化如下。我希望能够返回包含给定类别名称的所有文章。显然我可以通过类别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然后在文章集合上返回文章的问题(这似乎效率低下)或者我是否需要重新编写我的架构?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我不知道您的类别集合中包含哪些数据,但对我来说,您有两种选择:

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