如何在javascript中检索数组内部的项而不是数组本身

如何在javascript中检索数组内部的项而不是数组本身,javascript,arrays,mongodb,mongoose,javascript-objects,Javascript,Arrays,Mongodb,Mongoose,Javascript Objects,我的数据来自用户并作为一个对象存储,该对象需要在服务器端经过一些处理后进入Mongo。我使用Mongoose并使用$push{item}语法将一个项插入到我的数据库中 我的猫鼬模型有照片:[]作为语法,只是一个简单的数组。在这个阵列中,我需要上传照片。但是,如果用户在不同的时间上传,我的数组可能最终会有一个数组,而我只需要一个简单的数组和多个对象 这是我的路线: const testMedia = async (req, res) => { //loop through the res

我的数据来自用户并作为一个对象存储,该对象需要在服务器端经过一些处理后进入Mongo。我使用Mongoose并使用
$push{item}
语法将一个项插入到我的数据库中

我的猫鼬模型有
照片:[]
作为语法,只是一个简单的数组。在这个阵列中,我需要上传照片。但是,如果用户在不同的时间上传,我的数组可能最终会有一个数组,而我只需要一个简单的数组和多个对象

这是我的路线:

const testMedia = async (req, res) => {
  //loop through the res.locals.ids and save each as their own photo in the event
  let events = [];
  let photosArray =
  let owner = {id: req.user._id};
  const promises =  await res.locals.ids.map((photoLink) => {
     events.push({link: photoLink.link,
     dateUploaded: new Date(Date.now()).toLocaleString(),
     eventID: req.body.eventId,
     owner: owner
     })
  });
  await Event.findByIdAndUpdate(
      req.body.eventId,
      { $push: {
        photos: events
      }},
      { save: true, upsert: true, new: true },
      (err) => {
        if (err){
          console.log("Error in testMedia  ||  " + err);
          res.sendStatus(300);
        }
      }
    );

  await Promise.all(promises);
  res.render("eventDisplay", { events: event });
  res.end();
};
我遇到的问题是,如果我将项目推送到
事件中
,当我只需要对象本身时,我将推送一个对象数组,因此要么我必须对每个对象进行一次数据库调用才能插入,这似乎是在浪费资源,或者我需要找到一种方法来插入所有对象,而不将它们包装在数组中


不知什么原因,我搞不懂。有什么想法吗

根据Mongo文档,您可以使用
$each

.findByIdAndUpdate(req.body.eventId, {
  $push: {
    photos: { $each: events }
  }
})

这会将多个项目推入您的阵列。

非常感谢!哇,太简单了。我会看一下这些文件,看看我是怎么漏掉的。