2017-02-18 72 views
0

我不是一個全新的填充用戶,但現在我不知道什麼是錯的。Mongoose:utils.populate:無效的路徑。預期的字符串。得到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); 

我必須承認,我是新來的承諾對貓鼬&表達,這是我第一次這樣做。但使用填充,我使用它比我想象的更多。有什麼建議麼?

回答

相關問題