我有一个正常运行的代码,它根据我的架构创建一个新的JSON对象,但我想将目标定位在整个对象内部。我不确定这是否可行......我陷入了创建新对象但又更新现有对象之间的问题
这是我的架构
year: {
January: [
{
day: String,
title: String,
summary: String,
description: String
}
],
December: [
{
day: String,
title: String,
summary: String,
description: String
}
]
}
});
这是我在mongodb中的数据
{
_id: "53ee9f0fc6aed109c6d33cfc"
__v: 0
-year: {
December: [ ]
November: [ ]
October: [ ]
September: [ ]
August: [ ]
July: [ ]
-June: [
-{
day: "21"
title: "ok"
summary: "ok"
description: "ok"
_id: "53ee9f0fc6aed109c6d33cfd"
}
]
May: [ ]
April: [ ]
March: [ ]
February: [ ]
January: [ ]
}
}
我的问题是我的逻辑,因为它目前正在创建一个全新的'年'JSON对象,我想使用_id:“53ee9f0fc6aed109c6d33cfc”并在每个月添加日期。
这是我目前的角度逻辑:
$scope.createEvent = function() {
var cal = new CAL.API();
var month = [{day:$scope.calDay, title: $scope.calTitle, summary: $scope.calSummary,
description: 'ok'}];
cal.year = {};
cal.year[$scope.calMonth] = month;
cal.$save(function(result){
$scope.calendar.push(result);
});
}
答案 0 :(得分:0)
您是否尝试将日历事件推送到日历对象,对吧?
如果是,您需要检索实际日历,然后将事件推送到特定日期,而不是为每个事件创建新日历,因为在这种情况下,您不会保存包含完整事件的单个日历。
另一个选项是为每个事件保存一个对象,并查询与您想要的月份和日期匹配的所有事件
第一个选项:
var cal = getMyActualCal();
然后检查月和日是否存在,如果不存在则创建。
cal.year[$scope.calMonth] = cal.year[$scope.calMonth] || []
var event = { day: $scope.calDay, title: 'mytitle', sumary: 'mysumary' };
cal.year[$scope.calMonth].push(event);
cal.$save();