哈希被推到猫鼬模型上作为'[对象对象]”;
Hashes being pushed onto mongoose model as '[object Object]"
我正试图将一些东西推到Mongoose模型上。模型看起来像这样。
var ScheduleSchema = new mongoose.Schema({
hours: Number,
items: [{number: Number, minutes: Number, details: {description: String}, type: String}],
userId: Number
});
//later
ScheduleSchema.methods.createNew = function(hours, tasks, breathers) {
var schedule = makeSchedule(hours, tasks, breathers);
console.log(schedule);
this.items = schedule;
console.log(this.items);
}
我认为这对我的问题来说已经足够了,但如果需要,我可以提供更多的代码。本质上,我有一个创建时间表的方法,然后我想将时间表分配给对象的"items"属性。我必须承认,我还在学习猫鼬,所以它可能是那里的一个问题。
无论如何,我知道我的makeSchedule函数正在工作,因为我将其视为第一条控制台消息的输出。
[{ number: 1,
minutes: 30,
details: {description: 'Task A'},
type: 'task'},
{ number: 2,
minutes: 45,
details: {description: 'Task B'},
type: 'task'},
etc...
]
然而,当我的第二条日志语句this.items的控制台输出打印出来时,我看不到相同的结构。相反,我看到
["[object Object]", "[object Object]", "[object Object]", etc...]
为什么我不能直接将时间表变量分配给this.items?我相信我以前甚至可以做到,但我对日程代码做了一些更改,现在我做不到了。
这会让我相信错误在我的计划代码中,但正如你所看到的,它根据控制台输出创建项目列表很好。有人能看到一个非常明显的、可能与猫鼬有关的错误吗?我在新秀时期可能错过了这个错误?
我的猜测是,您最近在items
中的嵌入对象中添加了type
字段,这使得Mongoose现在认为items
包含一个字符串数组,而不是像您那样的对象数组。
要解决此问题,请使用一个对象在您的模式中定义type
的类型,如下所示:
var ScheduleSchema = new mongoose.Schema({
hours: Number,
items: [{
number: Number,
minutes: Number,
details: {description: String},
type: {type: String}
}],
userId: Number
});
相关文章:
- 如何使用Javascript客户端对象模型检索Sharepoint 2010列表项权限
- 使用Javascript对象模型
- JavaScript具有从响应生成的角度嵌套对象模型(无限深)
- 任何学习Javascript浏览器对象模型的好地方
- 通过Javascript的MS Word对象模型:邮件合并
- 如何使用 JavaScript 对象模型以编程方式将 SharePoint 客户端 Web 部件 (AppPart) 添
- 文档对象模型问题
- 客户端对象模型调用context.executeQueryAsync:将项添加到列表后,在onQuerySuccesse
- Mongodb,在插入新值之前检查对象/模型的数组
- 访问Excel's对象模型
- 如何用javascript为html菜单创建可读的对象模型
- 尝试使用cucumber.js实现页面对象模型时出错
- SharePoint客户端对象模型-如何读取多个网站中具有相同名称的列表
- SharePoint 2013上的Javascript对象模型未加载
- 探索Rally对象模型的最简单方法是什么
- InDesign对象模型:当前页面的数目
- 使用ECMAScript/JavaScript对象模型按内部名称获取SharePoint列表
- Angular指令-选择下拉数组或对象模型
- 读取和操作来自不同域的父节点的ifame's文档对象模型
- 如何在sharepoint客户端对象模型中获得由字段创建的显示名称