猫鼬:排除未填充的字段

时间:2017-03-29 22:04:55

标签: node.js express mongoose

考虑以下架构:

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('用户') ,我仍然希望'用户'要返回的字段。

0 个答案:

没有答案