是否可以在mongoose查询中压缩数组?

时间:2013-11-26 17:06:52

标签: node.js mongodb mongoose

我有以下架构

var book_s = new Schema({
        //_id: automatically generated,
        pageCount: Number,
        titles: [{ type: Schema.Types.ObjectId, ref: 'BookTitle' }]
    });

var bookTitle_s= new Schema({
        //_id: automatically generated,
        language: String,
        title: String
});

如果我使用如下查询:Book.find({}).populate('titles').exec()

我会得到每本书的所有标题列表。

有没有办法改变查询,以便我可以传入语言参数(比如英语),只将英文标题填充到Book模型中?

1 个答案:

答案 0 :(得分:1)

您可以在populate调用中使用match字段,仅填充通过其条件的模型:

Book.find({}).populate({path: 'titles', {match: {language: 'English'}}}).exec()