我快速浏览了一下,没有找到任何令我满意的答案,但基本上我已经开始使用带有express和mongodb的node.js来创建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 行代码和对数据库的额外调用。
count() 仍然可以用 toArray() 删除:
properties.find(searchParams).toArray(function (err, result) {
var i, count;
for (i = 0, count = result.length; i < count; i++) {
propArray.push(new models.propertyModel(result[i]));
}
db.close();
return res.json(propArray);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)