将猫鼬查询数据保存在数组中

时间:2019-12-18 12:19:50

标签: node.js mongodb asynchronous mongoose

因此,我基本上是在循环函数中尝试在mongoose模型上使用findById构建数组。我有三个基本模型:Company,User和Dog。用户可以添加公司和狗,并且用户可以将其狗添加到公司。

一家有狗的公司看起来像这样:

{
 _id: ObjectId(...),
 checkedInDogs: [ObjectId(...), ObjectId(...) ObjectId(...)] // ids from dogs,
 addedByUser: ObjectId(...) // user id
 name: ...,
 ...
}

我想要一个给我用户的端点,该端点将狗添加到公司中

首先,我希望所有注册用户创建公司。如果用户添加了更多公司,那么我必须将它们映射。之后,我必须遍历checkedInDogs数组以获取添加了狗的用户。

router.get("/employees", auth, (reg, res) => {
  Company.find({addedByUser: reg.user.id})
    .then(companys => {
      companys.map(comp => {
        comp.checkedInDogs.map(dogId => {
          Dog.findById(dogId)
            .populate("addedByUser", "-_id -email -password -loggedInAs")
            .exec()
            .then(data => {
              console.log(data);
            });
        });
      });
    });
});

控制台功能确实会打印出带有用户信息的狗,但我真的不知道如何将它们保存在数组中以编写响应功能,因此我可以在前端使用它。

我知道我在异步nodejs地狱中,但是找不到解决方法

0 个答案:

没有答案
相关问题