0
我是express/mongoose
的新手,试图实现User-Post关系。也就是1:很多。猫鼬1:许多父关系不保存(说undefined)
我有两个models
,
// *models/user.js
var mongoose = require('mongoose');
var userSchema = mongoose.Schema({
email: {type: 'string'},
password: {type: 'string'},
posts: [{type: mongoose.Schema.Types.ObjectId, ref: 'Post'}]
});
module.exports = mongoose.model('User', userSchema);
// *models/post.js
var mongoose = require('mongoose');
var postSchema = mongoose.Schema({
user : { type: mongoose.Schema.Types.ObjectId, ref: 'User' },
body: String,
title: String
});
module.exports = mongoose.model('Post', postSchema);
server.js,
Post = require('./models/post');
User = require('./models/user');
app.post('/api/posts',(req,res)=>{
User.findOne({email: "valid_email"},(err, user)=>{
var post = {
title: "Post 1 Title",
body: "Post 1 body",
user: user._id
}
Post.create(post, (err, post)=>{
res.send(post);
});
});
});
现在,这种做法正在保存属于与电子邮件 “VALID_EMAIL” 用户Post
。我可以通过填充来扩展它的用户。
app.get('/post', (req,res)=>{
Post.findOne(title: "Post 1 title")
.populate('user')
.exec(function (err, user) {
if (err) throw err;
console.log(user._id, user.email);
res.end();
});
});
我想产生在寻找一个用户会自动推送到用户posts.Not的回调Post
只是它不是它是如何工作的,我不能手动推到“user.posts”。
它说不能“推”到undefined.When我console.log(user.posts)
我得到undefined
。
它是如何产生一个邮政belongsTo
一个用户,然后我可以填充用户只是它的id
,但不能推送到用户?它给出了未定义的“user.posts”?
非常感谢Ravi Shankar的正确编辑 –