Eri*_*and 2 schema mongoose mongodb node.js
我目前有一个array包含多个objects嵌套在其中的。
这是格式...
[ { id: 1, title: 'Squats', video: 'https://www.youtube.com/watch?v=aPYCiuiB4PA' }, { id: 2, title: 'Push-Ups',video: 'https://www.youtube.com/watch?v=aPYCiuiB4PA' }]
Run Code Online (Sandbox Code Playgroud)
我正在.save()我的Schedule模型中尝试它看起来像这样......
var ScheduleSchema = new mongoose.Schema({
schedule: [Object]
})
Run Code Online (Sandbox Code Playgroud)
当我Schedule在服务器端的控制器中运行以下代码时,该.save()函数给了我一个“成功”消息(我对其进行了编程),但是当我查看我的MongoDB数据库时,它错误地保存了schedule数组中没有任何内容。
这是保存的信息在数据库中的样子....
{ "_id" : ObjectId("56c28a0d4c92bec03408c077"), "schedule" : [ ], "__v" : 0 }
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,我的模型设置错误。
我尝试过的模型模式...
1) schedule: []
2)schedule: [Schema.Types.Mixed]
以防万一这是有帮助的,这是我.save()尝试从计划控制器中保存所述数据时的功能...
var new_schedule = new Schedule(req.body.info);
new_schedule.save(function(err){
if(err){
console.log('err');
}else{
console.log('worked');
}
})
Run Code Online (Sandbox Code Playgroud)
我建议像这样设置你的架构:
var ScheduleSchema = new mongoose.Schema({
schedule: [mongoose.Schema.Types.Mixed]
});
Run Code Online (Sandbox Code Playgroud)
这将是设置它的正确方法。另一种方法是在线定义对象,如下所示:
var ScheduleSchema = new mongoose.Schema({
schedule: [{
id: { type: Number, default: 1 },
title: { type: String, default: '', trim: true },
video: { type: String, default: '', trim: true }
}]
});
Run Code Online (Sandbox Code Playgroud)
此外,它可能不是服务器端代码的问题。在使用 req.body.info 创建新的 Schedule 之前,您可能需要添加如下一行:
console.log(JSON.stringify(req.body, null, 2));
Run Code Online (Sandbox Code Playgroud)
这将以可读格式打印出 req.body 对象,以便您可以确保客户端应用程序正在发送您认为您正在获取的信息。
| 归档时间: |
|
| 查看次数: |
6465 次 |
| 最近记录: |