2016-12-19 125 views
1

嗨我想在集合中添加一個文檔,但它不會添加,我驗證了Robomongo中的JSON驗證。我做了與其他模型相同的東西,它工作正常,但出於某種原因,它不能在這裏工作,任何人都可以看到錯誤。貓鼬創建對象不工作

exports.add_ads = function(req, res) { 
if (Object.keys(req.body).length == 0 || 
    req.body.user_id == undefined || req.body.user_id == "" || 
    req.body.rate == undefined || req.body.rate == "" || 
    req.body.ads.type == undefined || req.body.ads.type == "") { 
    res.status(404).send({ error: "One or more request peremeter is empty" }); 
} 
// console.log(req.body.ads['type']); 
new Review({ 
    user_id: "58492c6f05c095160e37436c", 
    ads: { 
     type: "view" 
    }, 
    product: { 
     product_id: "", 
     review: "", 
     rating: 0 
    }, 
    rate: 0.07, 
    isActive: true 
}).save(); 
res.end(); 

}

如果我刪除產品和廣告,功能工作正常。

型號:

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 
var User = require('../models/user.js'); 
var Product = require('../models/product.js'); 

// define model ========================================================================= 
var ReviewSchema = new Schema({ 
    user_id: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }, 
    ads: { 
     type: String 
    }, 
    product: { 
     product_id: { type: mongoose.Schema.Types.ObjectId, ref:  'Product'}, 
     review: String, 
     rating: Number 
    }, 
    rate: Number, 
    isActive: Boolean, 
    dateCreated: Date 
}); 

module.exports = mongoose.model('Review', ReviewSchema); 
+0

您是否也可以展示如何爲'Review'模型定義模式? – chridam

+0

@chridam我已更新我的帖子,型號 –

+0

在您的架構定義中,將此行更改爲'ads:{ }類型:字符串 },''爲'ads:{type:{type:String} } 'ad'有一個名爲'type'的屬性,它被保留爲一個貓鼬類型。另外,該模型期望'product_id'有一個有效的'ObjectId'字符串表示,而不是一個空字符串。 – chridam

回答

0

在你的模式定義,更改此行

ads: { 
    type: String 
}, 

ads: { 
    type: { type: String } 
}, 

ad有一個名爲 '類型' 屬性,它被保留爲貓鼬類型。

此外,該模型期望product_id有效的ObjectId字符串表示形式,而不是空字符串。