【发布时间】:2014-09-03 15:53:43
【问题描述】:
我快速浏览了一下,没有找到任何让我满意的答案,但基本上我已经开始使用 node.js 和 express 和 mongodb 来创建 webapi 而不是通常的 .Net MVC Web API 路由.
我注意到的一件事是,为了返回结果集合,我以一种相当庞大的方式进行操作,或者至少感觉是这样。
app.get('/property', function (req, res) {
var propArray = [];
MongoClient.connect(settings.connection,
function (err, db) {
if (err) throw err;
var properties = db.collection("PROPERTIES");
var searchParams = {
Active: true,
Deleted: false
}
properties.count(searchParams, function (err, count) {
properties.find(searchParams).toArray(function (err, result) {
for (i = 0; i < count; i++)
propArray.push(new models.propertyModel(result[i]));
db.close();
return res.json(propArray);
});
});
}
);
});
现在我注意到有一个 .each 函数而不是 .toArray 我更喜欢使用它,因为我可以删除 .count 函数但显然你只能返回一次响应。我想知道你们是否可以用你们的一些 mongo 知识启发我。
properties.find(searchParams).each(function (err, result) {
return res.json(result);
});
类似的东西,删掉 6 行代码和对数据库的额外调用。
【问题讨论】:
-
为什么不用
result.length而不是count? -
啊谢谢你我不知道这个谢谢这正是我希望听到的那种事情
-
效果很好,非常感谢!
标签: node.js express node-mongodb-native