我对commentSchema的虚拟定义有疑问。在commentSchema中,我引用了" User"模型。我试着得到" comment.user.username"属性。为此我已经定义了虚拟属性" author",我在其中填充注释并获取用户名,但是没有返回。 :(
CommentSchema:
var commentSchema = mongoose.Schema({
title: { type: String },
text: String,
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
....
})
UserSchema:
var userSchema = mongoose.Schema({
local : {
username : String,
email: String,
...
})
在我的ejs-File中,我有一个角度ng-repeat表单,我想访问注释文档的属性:
<dd data-ng-repeat="comment in comments" class="accordion-navigation">
<a id="lastStop" href="#panel{{ $index }}">{{ comment.title }}</a>
它适用于除虚拟之外的所有属性。这是虚拟的定义:
commentSchema.virtual('author').get(function () {
mongoose.model('Comment').findOne({ title : this.title })
.populate('user')
.exec(function(err, comment) {
if (comment.user) {
console.log(comment.user.local.username);
return comment.user.local.username;
} else {
return "Anonymous"
}
});
}
)
什么都没有归还。有什么想法吗?