【发布时间】:2022-01-07 11:10:58
【问题描述】:
我想从我的 mongodb 集合中检索一个数组,然后在将它发送回客户端之前使用它。 我想要的结果如下:
- 从collection_A中获取数组
- 通过另一个 mongodb 查询,对我刚刚得到的数组进行所需的工作
- 将数组传回客户端
我当前的代码如下所示:
db.collection("collection")
.find()
.toArray()
.then((arr) => {
arr.forEach(cur => {
db.collection("another-collection")
.count({key: cur.prop})
.then((retrieved) => {
cur.prop = retrieved; //The amount of count one live above
//This part runs later than the res.success below
})
.catch((err: any) => {
//Handle error
});
});
return arr;
})
.then(arr => {
res.success(arr);
})
.catch((err) => {
//Handle error
});
目前,我想要对检索到的数组进行的工作发生在res.success() 之后,因此在客户端上我将获得原始数组。
为什么会这样?
【问题讨论】:
-
我很确定这是同一个问题,但我不知道如何在我的代码中实现解决方案
-
尝试使用
for-of而不是foreach
标签: javascript mongodb promise