我有以下架构
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模型中?
答案 0 :(得分:1)
您可以在populate
调用中使用match
字段,仅填充通过其条件的模型:
Book.find({}).populate({path: 'titles', {match: {language: 'English'}}}).exec()