我尝试定义一个类型为注释(另一种模式(的数组"注释"。
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'}]
}