You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 16:19:07