我最近开始将MongoDB与Mongoose结合使用,并且有一个似乎很简单的问题。到目前为止,我有两个模型,一个用户和一个帖子。帖子归用户所有,由ObjectId引用。这些是模型:
邮政
var mongoose = require('mongoose');
var PostSchema = new mongoose.Schema({
text: String,
stars: { type: Number, default: 0 },
score: { type: Number, default: 0 },
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User', default: '554cb70669234d6f04f425a2' }
});
PostSchema.methods.addstar = function(cb) {
this.stars += 1;
this.save(cb);
};
mongoose.model('Post', PostSchema);
用户
var mongoose = require('mongoose');
var crypto = require('crypto');
var jwt = require('jsonwebtoken');
var UserSchema = new mongoose.Schema({
username: {type: String, lowercase: true, unique: true},
hash: String,
salt: String
});
mongoose.model('User', UserSchema);
当我想以角度使用HTML页面上的数据时,我尝试通过以下方式访问用户名:
{{ post.user.username }}
但是,这不会产生任何结果。我是否需要使用用户ID单独发出获取请求,还是更直观的方式?
如前所述,我知道这个问题似乎很基本。我只是在学习Mongo,并且以前曾与Rails Databases一起工作,在Rails Databases中,很多功能都被遮盖了。
有任何想法吗 ?
以下代码返回所有帖子,并为每个帖子填充用户。我忘了在Post.find()方法调用中包含空对象。
router.get('/posts', function (req, res, next) {
Post.find({})
.populate('user')
.exec(function (err, posts) {
if(err){ return(err); }
res.json(posts);
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句