Mongoose model.create 创建文档但包含传递值的 none
Mongoose model.create creates document but contains none of the value passed
所以我的应用程序有一个平均堆栈后端,它基本上跟踪健身程序。在其中,我试图根据名称、集合数组、用户 ID 创建例程,但是当我 运行 它执行正常但 mlab 上的文档不存储任何这些信息,只存储它的日期创建。
(这是下面传给我的routine.create的req.body样本\"chest\"[{\"setExercise\":\"s\",\"repAmount\":0, \"setTime\":1}]\"59dbfd763645bb001185b86b)
exports.createRoutine = function(req, res, next){
Routine.create({
routine : req.body.routineName,
sets : req.body.subroutines,
userid: req.body.userid
}, function(err, routine) {
if (err){
res.send(err);
}
Routine.find(function(err, routines) {
if (err){
res.send(err);
}
res.json(routines);
});
});
}
这是我要创建的架构
var SubRoutineSchema = new mongoose.Schema({
setExercise: String,
repAmount: {
type: Number
},
setTime: {
type: Number
}
}, {
timestamps: true
});
var RoutineSchema = new mongoose.Schema({
routine: {
type: String,
lowercase: true,
unique: true,
required: true
},
sets: [SubRoutineSchema],
userid: String
}, {
timestamps: true
});
module.exports = mongoose.model('Routine', RoutineSchema);
module.exports = mongoose.model('SubRoutine', SubRoutineSchema);
并且 mLab 中的例程 table 中没有文档,但是使用以下信息
创建了一个子例程 table
{
"_id": {
"$oid": "59e2bc7d68ba4a0011f3897c"
},
"updatedAt": {
"$date": "2017-10-15T01:40:13.220Z"
},
"createdAt": {
"$date": "2017-10-15T01:40:13.220Z"
},
"__v": 0
}
我是新手,所以如果能深入了解为什么会发生这种情况,我们将不胜感激。
您的第二个 module.exports 正在覆盖第一个。将它们放在不同的文件中或使导出不同,例如:
const Routine = mongoose.model("Routine", RoutineSchema);
const Subroutine = mongoose.model(""Subroutine", SubroutineSchema);
module.exports = { Routine, Subroutine };
所以我的应用程序有一个平均堆栈后端,它基本上跟踪健身程序。在其中,我试图根据名称、集合数组、用户 ID 创建例程,但是当我 运行 它执行正常但 mlab 上的文档不存储任何这些信息,只存储它的日期创建。 (这是下面传给我的routine.create的req.body样本\"chest\"[{\"setExercise\":\"s\",\"repAmount\":0, \"setTime\":1}]\"59dbfd763645bb001185b86b)
exports.createRoutine = function(req, res, next){
Routine.create({
routine : req.body.routineName,
sets : req.body.subroutines,
userid: req.body.userid
}, function(err, routine) {
if (err){
res.send(err);
}
Routine.find(function(err, routines) {
if (err){
res.send(err);
}
res.json(routines);
});
});
}
这是我要创建的架构
var SubRoutineSchema = new mongoose.Schema({
setExercise: String,
repAmount: {
type: Number
},
setTime: {
type: Number
}
}, {
timestamps: true
});
var RoutineSchema = new mongoose.Schema({
routine: {
type: String,
lowercase: true,
unique: true,
required: true
},
sets: [SubRoutineSchema],
userid: String
}, {
timestamps: true
});
module.exports = mongoose.model('Routine', RoutineSchema);
module.exports = mongoose.model('SubRoutine', SubRoutineSchema);
并且 mLab 中的例程 table 中没有文档,但是使用以下信息
创建了一个子例程 table{
"_id": {
"$oid": "59e2bc7d68ba4a0011f3897c"
},
"updatedAt": {
"$date": "2017-10-15T01:40:13.220Z"
},
"createdAt": {
"$date": "2017-10-15T01:40:13.220Z"
},
"__v": 0
}
我是新手,所以如果能深入了解为什么会发生这种情况,我们将不胜感激。
您的第二个 module.exports 正在覆盖第一个。将它们放在不同的文件中或使导出不同,例如:
const Routine = mongoose.model("Routine", RoutineSchema);
const Subroutine = mongoose.model(""Subroutine", SubroutineSchema);
module.exports = { Routine, Subroutine };