Node JS, express, Mongoose,嵌套查询
Node JS, express, Mongoose, nested queries
我有一组嵌套查询express/mongoose,很像这样:
app.get(..., function(...) {
Schema1.query(..., function(..., res1) {
for ( var key in res1 ) {
Schema2.query(..., function(..., res2) {
data[key].appendedAttribute = res2.somedata;
});
}
res.render(..., data);
});
});
不起作用,也就是说,appendedAttribute永远不会添加到数据集。我做错了什么?
使用after
app.get(..., function(...) {
Schema1.query(..., function(..., res1) {
var cb = after(Object.keys(res1).length, function () {
res.render(..., data);
});
for (var key in res1) {
Schema2.query(..., function(..., res2) {
data[key].appendedAttribute = res2.somedata;
cb();
});
}
});
});
基本上,您必须在第二个查询完成后才触发res.render
调用。
使用步骤:
app.get(..., function(...) {
var data;
Step(
function first_query() {
Schema1.query(...,this);
},
function multiple_queries(err, res1) {
for (var key in res1) {
Schema2.query(..., function(..., res2) {
data[key].appendedAttribute = res2.somedata;
this.parallel(); // make sure callback gets executed only after all the queries are executed
});
}
},
function render() {
res.render(..., data);
}
);
});
相关文章:
- Mongoose查询嵌套文档的时间或多或少为某个日期
- MongoDB嵌套对象数组后查询
- MongoDB嵌套查询-BadValue错误
- mongoose中嵌套查询执行的问题
- 如何通过node.js嵌套mongodb查询
- 如何填充嵌套查询
- MongoDB的嵌套查询/选择
- Parse(js)和嵌套查询中的一对多关系
- 我有一个<表单>我在INSERT INTO查询中发布,并且我需要能够在查询中嵌套查询
- 解析云代码嵌套查询时未调用代码141成功/错误消息
- Node JS, express, Mongoose,嵌套查询
- MongoDB嵌套查询只返回最近发生的结果
- 如何在Parse API中进行嵌套查询
- 在mongoose中嵌套查询,用于检查另一个集合中的值是否存在
- 如何防止在序列化中嵌套查询/捕获
- 在Sharepoint中运行嵌套查询
- 解析嵌套查询:内部查询永远不会执行
- NodeJs MongoDB嵌套查询-同步运行回调
- 嵌套查询在Node JS / MongoDB
- 使用嵌套查询的云工作承诺