Я не совсем новый пользователь, но теперь я не знаю, что случилось.Mongoose: utils.populate: неверный путь. Ожидаемая строка. Got typeof 'undefined'
Здесь мне нужно заполнить мой designerId
, который является типом ObjectId. Взгляните на мой маршрут.
ordersAdminRouter.route('/customorder/add')
.post(function(req, res){
body = req.body;
console.log(body);
CustomOrders.create(body, function(err, saved){
if (err) throw err;
Designs.findByIdAndUpdate(saved.designId, {$set: {status: 'Order Sent'}}, {new: true}).exec()
.then(function(updated){
return CustomOrders.findById(saved._id).populate(saved.designId).exec();
})
.then(function(orders){
res.json(orders);
})
.then(undefined, function(err){
console.log(err);
})
});
});
saved._id
работает, потому что когда я удалить Заполнить, он возвращает документ, который мне нужно без заполненного документа конечно.
Посмотрите на мою схему
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var customOrderSchema = new Schema({
designId: { type: Schema.Types.ObjectId, ref: 'customDesigns' },
size: { type: String },
quantity: { type: Number },
totalPrice: { type: Number },
paymentMode: { type: String },
rcpt_img: { type: String },
refNumber: { type: String }
});
module.exports = mongoose.model('customOrders', customOrderSchema);
Вот моя customDesigns
схема.
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var customDesignSchema = new Schema({
item_name: { type: String },
price: { type: Number, default: 0 },
img_url_front: { type: String },
img_url_back: { type: String },
designer: { type: Schema.Types.ObjectId, ref: 'users' },
color: { type: String },
designDate: { type: Date, default: Date.now() },
status: { type: String, default: 'For Qoutation' }
});
module.exports = mongoose.model('customDesigns', customDesignSchema);
мне нужно признать, что я новичок в обещания на мангусте & выразить, и это мой первый раз делаю это. Но используя populate, я использую его больше, чем я могу думать. Какие-либо предложения?