我正在使用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);
});
});
});
谢谢你的帮助!
答案 0 :(得分:0)
topic
中的{p> question_schema
看起来应该是复数,topics
。
我无法在任何地方看到question_to_save
。