Nodejs Express MongoClient集合检索

时间:2015-10-06 04:29:07

标签: javascript node.js mongodb express

我正在将我的数据库连接转换为MongoClient,并且很难更改以前代码的部分内容。

以前,为了从集合中检索所有文档,我会使用:

               $.getJSON('/users/infolist', function(data) {
                   $.each(data, function(){
                       //cycles through each document and do whatever
                   });
               });

会调用以下内容:

                router.get('/infolist', function(req, res) {
                    var db = req.db;
                    var collection = db.get('empcollection');
                    collection.find({$query: {}, $orderby: {age:1}},{},function(e,docs){
                        res.json(docs);
                    });
                 });

在线查看文档后,我仍然没有想出如何使用MongoClient复制此行为。我已经建立了连接,并且可以查询数据库,但是返回集合,并且如上所述在每个文档中循环都不起作用。

非常感谢任何建议或帮助。

1 个答案:

答案 0 :(得分:1)

根据您的解释,我了解您希望使用本机mongodb驱动程序从集合中检索文档列表,使用循环更新它们,然后将它们检索到客户端:

var MongoClient = require('mongodb').MongoClient;

//Establish a connection to your database
MongoClient.connect('mongodb://your/connection/string', function(err, db) {
    if(err) {
        console.log('There was an error connecting to the database');
    }

    //Map empcollection to a variable
    var collection = db.collection('empcollection');

    //Query the collection and retrieve the documents in an array
    collection.find({}).toArray(function(err, docs)) {
        if(err) {
            console.log('There was an error retrieveing the matched documents');
        }

        //Loop through the documents and change them accordingly
        for(var i = 0; i < docs.length; i++) {
            //........
        }

        //Retrieve the updated data
        res.json(docs);

        }
    });
});