因此,我基本上是在循环函数中尝试在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地狱中,但是找不到解决方法