gpt4 book ai didi

Javascript - 从多个集合中从 mongodb 收集数据然后合并到数组中

转载 作者:太空宇宙 更新时间:2023-11-04 01:38:37 24 4
gpt4 key购买 nike

我想从多个集合中获取最新的对象,并将所有对象保存到一个数组中,以集合名称作为键,最新的对象作为值。

如何顺序或异步实现此目的?

        let dat = ["test", "test2"];
let merged = [];

dat.map((collName) => {
const promise = new Promise((resolve, reject) => {
db.collection(collName).find().sort({ timestamp: -1 }).limit(1).forEach((d) => {
resolve(d);
});
})
.then((result) => {
merged.push(result);
});

console.log(merged);

最后的日志给了我一个空数组。

最佳答案

您可以尝试使用 async/await 为:

let dat = ["test", "test2"];

const promises = dat.map(async (collName) => {
try {
const data = await db.collection(collName)
.find({})
.sort({ timestamp: -1 })
.limit(1)
.toArray();
return data[0];
} catch(err) {
console.error(err);
}
});

(async () => {
const merged = await Promise.all(promises);
console.log(merged);
})();

关于Javascript - 从多个集合中从 mongodb 收集数据然后合并到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53709917/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com