Я пытаюсь присвоить товар нескольким тегам, чтобы можно было найти товары по тегам.но когда я пытаюсь вставить теги в свой продукт, у меня появляется ошибка: «Не удается прочитать свойство« push »из неопределенного» * 1001 *
Я использую MongoDB и Mongoose.
Вотмои схемы:
var tagSchema = mongoose.Schema({
tagname: String
});
var tag = mongoose.model('Tag', tagSchema);
var Item = new Schema({
title : String,
description : String,
price : Number,
tags: {
type: mongoose.Schema.Types.ObjectId,
ref: "Tag"
}
});
var gift = mongoose.model('Gift', Item);
Затем я создаю первый продукт:
var product1 = {
title :"Phone",
description : "can also takes pictures",
price : "345"
};
var product = new gift(product1);
product.save(function (err) {
if (err) {
console.log(err);
} else {
console.log("done"); // it works
}
});
И, наконец, я пытаюсь добавить тег во вновь созданный продукт:
tag.create({tagname :"homme" },function(err, newtag){
var id = "5ca35c741ef6570b55507939";
gift.findOne({_id : id}, function(err, foundproduct){
console.log(foundproduct); // It works, I find it.
foundproduct.tags.push(newtag); // It doesnt works and say Cannot read property 'push' of undefined
});
});
Что я вижу, так это то, что foundproduct.tags не существует, когда я console.log foundproduct.Но это то, что я хочу сделать, чтобы протолкнуть newtag в foundproduct ...
Я прочитал несколько тем об этой проблеме, но я все еще не понимаю, как это сделать.
Спасибомного за вашу помощь