为数组提供另一种定义的架构类型



我尝试定义一个类型为注释(另一种模式(的数组"注释"。

const beerSchema = new Schema({
name:String,
country:String,
color:String,
alcoholPercent:Number,
upvotes:{type:Number,  default:0},
comments:[{type:Schema.Types.ObjectId, ref:'comments'
}]
});

集合对象

[
{
"upvotes": 0,
"comments": [],
"test": [],
"_id": "5b0092af2cdf6b30b80dd386",
"name": "newName",
"country": "Belgium",
"color": "blond",
"alcoholPercent": 4.5,
"__v": 0
}
]

我的注释架构类

const mongoose = require('mongoose');
const {Schema } = mongoose;
const commentSchema = new Schema({
_beer:{type:Schema.Types.ObjectId, ref:'beers'},
postedTime:{type:Date, default:Date.now()},
comment:String,
_user:{type:Schema.Types.ObjectId, ref:'User'} 
});
mongoose.model('comments', commentSchema);

要填充的查询:

const  newComment = new Comment({
_beer:req.params.id,
comment:'comm1',
// _user:req.user.id
});
newComment.save(function(err){
if(err) return handleError(err);

console.log('new comment  saved');
});
Beer.findOne({name:'newName'})
.populate('comments')
.exec(function(err, comment){
if(err) return handleError(err);
console.log('new Comment is %s', comment._beer);
});

我的控制台.log当我尝试注销时给我未comment._beer错误。 有人可以指出我做错了什么吗?谢谢!

您的参考模型不正确Comment...应该是comments

const beerSchema = new Schema({
name:String,
country:String,
color:String,
alcoholPercent:Number,
upvotes:{type:Number,  default:0},
comments:[{type:Schema.Types.ObjectId, ref:'comments'}]
}

最新更新