我有一个应用程序,其中有大量数据以前保存在mongoDB中。现在如果referencePeople不为空字符串,我需要填充一些信息。在我的应用程序中,referencePeople是一个字符串类型,而不是mongoose的ObjectId类型。
我不想改变我的模式。是否有任何方法可以在填充之前检查referencePeople是否为空,或者如果为空则避免填充。
模式:
var OrderSchema = new mongoose.Schema({
customer: {type: mongoose.Schema.Types.ObjectId,ref: 'Customer'},
referencePeople: String, // can be "" or "customer id"
......
});
尝试了下面的代码但是出现了异常:在路径"_id"处将值""转换为ObjectId失败。
exports.getOrders = function(req, res) {
Order.find({})
.populate('customer')
.populate({path: 'referencePeople', model: 'customer'})
.exec(function(error, orders) {
if(error) {
return res.status(400).send({msg: 'Error occurred while getting orders.', error: error});
}
return res.status(200).send(orders);
});
};
现在我想在referencePeople不为空字符串的情况下填充它。 我能在填充referencePeople之前检查它是否为空吗?