Javascript Node js-Push()函数无法与引用和mongodb一起正常工作

Javascript Node js-Push()函数无法与引用和mongodb一起正常工作,javascript,node.js,push,Javascript,Node.js,Push,我正在使用ObjectReferences并将注释数据推送到数据库中,但即使数据正在保存,它也不起作用,只添加了“id”,而没有添加用户和注释 使用推送方法的主文件 var Comment = require('./models/comments'), Camp = require('./models/user'); app.post('/camp/:id/comment', (req,res)=>{ Camp.findById(req.params.id, (err, i

我正在使用ObjectReferences并将注释数据推送到数据库中,但即使数据正在保存,它也不起作用,只添加了“id”,而没有添加用户和注释

使用推送方法的主文件

var Comment = require('./models/comments'),
    Camp = require('./models/user');    
app.post('/camp/:id/comment', (req,res)=>{
Camp.findById(req.params.id, (err, idf)=>{
    if(err){
    console.log(err);
    }else{

    Comment.create(req.body.comment, (err, commentz)=>{
    if(err){
      console.log(err);
    }else{
      console.log(commentz + idf);
      idf.comments.push(commentz)
      idf.save();
      res.redirect('/camp/'+ idf._id)
    }
    })
    }
})
})
ObjectReferences user.js

    var mongoose = require('mongoose');

var schema = mongoose.Schema;
var blogSchema = new schema({
name : String,
email  : String,
descr : String,  // TEMPORERY
posts: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'

}
],
comments: [
    {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Comment'
    }
]
});

var Camp = mongoose.model("Camp", blogSchema);
module.exports= Camp;
    var mongoose = require('mongoose');

var schema = mongoose.Schema;
var cSchema = new schema({
user : String,
comment  : String,
})

var Comment = mongoose.model("Comment", cSchema);
module.exports =Comment;
CommentSchema comments.js

    var mongoose = require('mongoose');

var schema = mongoose.Schema;
var blogSchema = new schema({
name : String,
email  : String,
descr : String,  // TEMPORERY
posts: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'

}
],
comments: [
    {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Comment'
    }
]
});

var Camp = mongoose.model("Camp", blogSchema);
module.exports= Camp;
    var mongoose = require('mongoose');

var schema = mongoose.Schema;
var cSchema = new schema({
user : String,
comment  : String,
})

var Comment = mongoose.model("Comment", cSchema);
module.exports =Comment;
主表单

    <form action="/camp/<%=camp._id%>/comment" method="post" class="form-group">
<div class="form-group">
<input class="form-control" type="text" name="comment[user]" value="" placeholder="Name">
</div>
<div class="form-group">
    <textarea class="form-control" style="height:100px" type="text" name="comment[comment]" value="" placeholder="Your Comment"></textarea>
</div>
<div class="form-group">
<button class="btn btn-primary btn-large btn-block" type="submit" name="submit"> SUBMIT</button>
</div>
</form>

提交

唯一添加到用户数据库中的ID,而不是所有注释,在注释中,收集数据添加得非常完美

我认为与其使用
commentz
不如使用
commentz.\u ID
并对
进行回调。save
。它应该会起作用

  console.log(commentz + idf);
  idf.comments.push(commentz._id)
  idf.save(function(err){
    if(err){
      // handle error
    }
    res.redirect('/camp/'+ idf._id)
  });

是的,现在无论何时检索它,都必须像这样填充它
Camp.findById({}).populate('comments').exec(函数(err,camps){//它将获取整个数据})
永远不要存储同一数据两次。总是储存参考资料谢谢,兄弟,很好用。。。我使用我的课程“web开发者训练营”中的代码,他们使用相同的代码,对他们有效,但对我无效。。如果它不工作,那么它如何为他们工作???嗨,我将不得不检查那里的代码不能说他们做了什么。