Javascript 在搜索完成并填充结果对象之前,结果将被发送回mongodb
我有一个用户对象,它有一个名为categories的属性,它应该包含一个表示类别及其书签的对象数组。此数组可以有这些对象的多个实例。我在那个物体里面有“名字”和“散文”的属性。“随笔”是指随笔范本实例 下面是我的模型是如何建立的。这在用户架构上:Javascript 在搜索完成并填充结果对象之前,结果将被发送回mongodb,javascript,mongodb,asynchronous,mongoose,Javascript,Mongodb,Asynchronous,Mongoose,我有一个用户对象,它有一个名为categories的属性,它应该包含一个表示类别及其书签的对象数组。此数组可以有这些对象的多个实例。我在那个物体里面有“名字”和“散文”的属性。“随笔”是指随笔范本实例 下面是我的模型是如何建立的。这在用户架构上: categories: {type: Array, name: String, essays: {type: Array, id: {type: Schem
categories: {type: Array,
name: String,
essays: {type: Array,
id: {type: Schema.Types.ObjectId,
ref: 'Essay'}}
}
,
我正在尝试搜索用户,然后检索categories属性并获取这些ID。在获得这些ID之后,我在我的论文模式中搜索这些ID并检索所有数据
以下是我正在使用的方法:
controller.myCategories = function(req, res){
var result = [];
User.findOne({_id: req.headers.id}).then(function(user){
user.categories.forEach(function(category, index, ins){
var essayObj = {name: category.name};
essayObj.essays = [];
category.essays.forEach(function(essayId, index){
var tempId = essayId;
Essay.find({_id: tempId }).then(function(essay){
essayObj.bookmarks.push(essay)
});
});
result.push(essayObj);
})
}).then(function(){
res.status(200).send(result);
});
};
我遇到的问题是,结果是在对象中填充论文数据之前发送的,并且该对象添加到结果数组中。我得到的只是一个空的带有名字的essayObj。让代码按顺序编译的最佳方法是什么?试着阅读文档:嘿,gforce,正要回来“回答我自己的问题”。谢谢你的回复!是的,我最终重做了我的模式,并添加了一个类别模型,在该模型中,论文被绑定到。类别与用户帐户绑定。完成了填充请求以收集数据并将其推回到我的angular应用程序中。尝试阅读文档:嘿,gforce,正要回来“回答我自己的问题”。谢谢你的回复!是的,我最终重做了我的模式,并添加了一个类别模型,在该模型中,论文被绑定到。类别与用户帐户绑定。完成填充请求以收集数据并将其推回到我的angular应用程序中。