node.js - mongodb nodejs 每个 vs toArray

标签 node.js express node-mongodb-native

我快速浏览了一圈,没有找到令我满意的答案,但基本上我已经开始使用 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 行代码和对数据库的额外调用。

最佳答案

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);
   });

关于node.js - mongodb nodejs 每个 vs toArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24724552/

相关文章:

javascript - 使用 Node.js 文件系统定期将 json 数据写入文件并换行读取

javascript - 将路由参数传递给 ExpressJS 中的 Controller

node.js - 如何在 Mongoose 模型内的数组中找到对象?

node.js - 如果从新设备 MEANJS 登录,请删除以前的 session

node.js - Nodejs获取相对于process.cwd()的绝对路径

node.js - 存储历史数据的最佳方法?

javascript - Express 3 的跨 session 问题

node.js - 如何使用 native node.js 驱动程序将用户名/密码连接到 mongodb

javascript - 在 NodeJS MongoDB 中保留嵌套 for 循环和回调中的执行顺序

mongodb - 按数组中的字段值过滤文档,Mongodb