mongodb - 如何在mongodb中合并两个模式
问题描述
我有一个帖子架构和用户架构,我想将它们合并在一起。我想知道怎么做。到目前为止,我有这个代码,但我一直在返回承诺。当我在 .map 之后添加 then 时,我没有得到任何结果。任何帮助,将不胜感激
let posts = await Post.find();
console.log(posts);
let test = await posts.map(async(post) => {
const creator = await User.findOne({token: post.creator});
var username = null;
if(creator){
username = creator.username;
}
return {...post._doc, username: username};
});
return posts;
解决方案
const q = require("q");
const async = require("async");
async function mainFunction() {
try {
let posts = await Post.find();
let result = await getUser(posts);
console.log(result)
} catch (error) {
console.error(error);
return { error: error };
}
}
async function getUser (posts) {
let defer = q.defer;
let test = [];
async.eachSeries(posts,async (post) => {// like loop
try {
let creator = await User.findOne({ token: post.creator });
var username = null;
if (creator) {
username = creator.username;
}
test.push({ ...post._doc, username: username });
} catch (error) {
console.log(error);
}
},() => {//callback
console.log("finish loop");
defer.resolve(test); // when finished loop return result
}
);
return defer.promise;
};
推荐阅读
- python - 如何更改由日期组成的 xaxis 的视觉方面?
- python - 从两个列表python中获取无序的唯一元素
- google-sheets - 在 Google Analaytics Sheets 中按周排序添加
- android - Viewpager empty when opened second time
- machine-learning - val数据在拟合过程中的损失和准确性与评估过程不相等
- mongodb - Mongo中的连接嵌套数组
- amazon-web-services - AWS Lambda 函数会重试多少次以异步调用?
- laravel - rest api 登录资源的最佳实践
- domain-driven-design - 提醒 - DDD
- git - Git 日志获取真正的提交作者