我想将文档保存到数据库,该数据库包含对另一个文档的引用。
但是,当我发布文档时,Mongoose会用其他内容替换我发送的_id
。
这是我的Mongoose代码(在Express中)
var resultItem = new models.Round_Results({
selection: result.selection,
time: result.time,
round: mongoose.Types.ObjectId(result.round)
});
models.User.findOne({username: username}, function(err, user){
user.results.push(resultItem);
user.save(function(err, result){
...
});
});
这是架构:
schemas.round_results = new mongoose.Schema({
round: {type: mongoose.Schema.ObjectId, ref: 'Round'},
selection: Number,
time: Number
});
var Round_Results = mongoose.model("Round_Results", schemas.round_results);
这是我发送给服务器的代码,例如:
var results = {
round: 555ec731385b4d604356d8e5,
selection: 10,
time: 19
};
但是在数据库中,它显示的是不同的round
ID。例如,它就像
{ selection: 10,
time: 19,
round: 5573ef74536a1e58489e59c4,
_id: 5573ef74536a1e58489e59c5 }
为什么会这样?
使用Mongoose构建Web应用程序时,保存对其他文档的引用的适当方法是什么?
答案 0 :(得分:0)
mongoose为子文档添加了一个_id字段。
取消它,为您的架构添加id false:
schemas.round_results = new mongoose.Schema({
_id:false,
round: {type: mongoose.Schema.ObjectId, ref: 'Round'},
selection: Number,
time: Number
});
var Round_Results = mongoose.model("Round_Results", schemas.round_results);