首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在javascript中检索数组内部的项,而不是数组本身

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

Stack Overflow用户
提问于 2018-10-06 23:07:36
回答 1查看 57关注 0票数 0

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

我的Mongoose模型使用photos: []作为语法,只是一个简单的数组。在该阵列中,我需要上传照片。但是,如果用户在不同的时间上传,我的数组可能会以数组的数组结束,而我只需要一个包含多个对象的简单数组。

这是我的路线:

代码语言:javascript
复制
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();
};

我遇到的问题是,如果我将项推入events中,当我只需要对象本身时,我将推送一个对象数组,因此要么我必须对每个要插入的对象进行一次数据库调用,这似乎是浪费资源,要么我需要找到一种方法来插入所有对象,而不是将它们包装在一个数组中。

因为某些原因,我想不通这件事。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-07 08:16:29

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

代码语言:javascript
复制
.findByIdAndUpdate(req.body.eventId, {
  $push: {
    photos: { $each: events }
  }
})

这将把多个项目放入你的数组中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52680388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档