如何在MongoDB中为对象数组内指定日期的对象中的数组添加元素
给指定日期的对象添加新时间段的方法
我来帮你搞定这个问题!要给objList中特定Date值的对象的Times数组添加新元素,用JavaScript可以按以下步骤操作:
1. 先修正并整理你的数据
首先把你提供的数据转换成合法的JavaScript对象(原数据里的Date值缺少引号,需要补上):
const data = { "ID": 254252324242423, "objList": [ { "Date": "3-6-2013", "Times": ["16:34-17:54", "18:00-19:00"] }, { "Date": "3-7-2013", "Times": ["16:34-17:54", "18:23-19:00"] }, { "Date": "3-8-2013", "Times": ["16:34-17:54", "18:30-20:00"] } ] };
2. 定义目标日期和新的时间段
比如我们要给日期为"3-7-2013"的对象添加一个"20:00-21:30"的时间段:
const targetDate = "3-7-2013"; const newTimeSlot = "20:00-21:30";
3. 定位目标对象并添加元素
方法一:只处理第一个匹配的对象(适合你的数据,因为每个Date唯一)
用find()方法快速定位目标对象,然后用push()把新元素加到Times数组末尾:
// 找到符合条件的对象 const targetObj = data.objList.find(item => item.Date === targetDate); // 如果找到对象,执行添加操作 if (targetObj) { targetObj.Times.push(newTimeSlot); console.log("添加成功!更新后的对象:", targetObj); } else { console.log(`没有找到日期为${targetDate}的对象哦`); }
方法二:处理所有匹配的对象(如果有重复日期的情况)
如果你的objList里有多个相同Date的对象,可以用forEach()遍历所有元素,给匹配的对象都添加新时间段:
data.objList.forEach(item => { if (item.Date === targetDate) { item.Times.push(newTimeSlot); } }); // 查看更新后的整个objList console.log("更新后的objList:", data.objList);
这样操作后,指定日期的对象的Times数组就会多出你想要的新元素啦~
内容的提问来源于stack exchange,提问作者dercooleo
相关产品推荐
相关产品推荐

