创建新架构对象后,Mongoose引用字段丢失

时间:2017-01-04 21:48:37

标签: node.js mongodb mongoose

我正在使用mongoDB与NodeJS使用mongoose包,尝试将对象保存到DB,其中一个字段丢失...检查所有内容。

问题:我不知道为什么会发生这种情况,因为我认为根据问题架构将其保存到数据库中。对于某些人来说,当我生成一个新的问题模式对象并将所请求的细节应用于它时,除了引用的一个(主题)之外,每个字段都适用于新的问题模式。我在这里遗漏了一些东西,我在新问题对象之前检查了所有字段都很好,包括引用的一个 - 显示主题的正确ID。

我有这个主题架构:

var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var Question = require("./Question.js");

var topic_schema = Schema({  
    name: {type: String, required: true},
    questions: [{ type: Schema.Types.ObjectId, ref: 'Question'}]
});

module.exports = mongoose.model('Topic', topic_schema);

我有这个问题架构:

var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var Topic = require("./Topic.js");

var question_schema = Schema({
    syntax: {type: String, required: true},
    answer: {type: String, required: true},
    topic: [{ type: Schema.Types.ObjectId, ref: 'Topic' }]
});

module.exports = mongoose.model('Question', question_schema);

我正试图在这条路线中保存一个问题:

app.post('/addque', function (req,res){
  // Getting the details from the client request
  var question_details = req.body.question_details;

  // Getting the id's of the topics
  Topic.find({name: {"$in": question_details.topics}}).select('_id').exec(function (err, topics){
    if (err) return console.error(err);

    // Apply the id's to the question_details
    question_details.topics = topics;

    // ~~~~~~~~~~Generate new questions object~~~~~~~~~ topic array does not apply here
    var question_to_save = question_details;

    //Save it to the DB
    question_details.save(function(err, saved_question) {
      if (err) return console.error(err);
    });
  });
});

谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

topic中的{p> question_schema看起来应该是复数,topics

我无法在任何地方看到question_to_save