考虑以下架构:
var CarSchema = new Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User',
required: true
},
name: {type: String}
});
以及以下查询:
var query = Car.find();
query.exec(function(err, cars) {
});
因为我没有明确填写“用户”。查询字段,返回的汽车列表是:
[
{
name : "Car1",
user : "5852a36499a7a21aa0b6d600"
},
{
name : "Car2",
user : "5852a39499a7a21aa0b6d603"
}
]
是否有任何方法(或插件)从某个根级别的查询响应中删除未填充的字段(如本例中的用户字段)(如架构级别)?我不想在所有查询中使用 .select(-user) 。
请记住:我只想删除未填充的字段。如果我在查询中设置 .populate('用户') ,我仍然希望'用户'要返回的字段。