如何返回mongoDB客户端单行结果node.js



我在nodejs中使用MongoClient = require('mongodb').MongoClient;模块。但是,我没有在节点中获得单行 JSON 对象结果。我在MongoDB客户端模块中没有任何想法。

简单查询:select *from settings where id=1;

mongo查询:db.collection("settings").findOne({_id:"5860cdf634c39399937f6619"});

我有多个JSON行,例如:

mongo.client.connect(mongo.url, function(err, db){
        var resultArr = [];
        var data = db.collection("settings").find();
        data.forEach(function(doc, err){
            mongo.assert.equal(null, err);
            resultArr.push(doc);
        }, function(){
            db.close();
            res.json({error:false,data:resultArr,msg:""});
        });
    });

这很好。但是,我无法获得单行。

我正在使用此库:http://mongodb.github.io/node-mongodb-native/2.2/installation-guide/

我解决了自己的错误!使用此参考链接:在node.js应用中根据mongo ID查询mongoDB

我的旧代码:

exports.getById = function(req, res, next) {
    mongo.client.connect(mongo.url, function(err, db){
        var id = req.params.id; // "5860cdf634c39399937f6619"           
        var data = db.collection("settings").findOne({_id:id}).then(function(doc) {
            console.log(doc);
            db.close();
        });
    });
};

请参阅我的已解决的代码:

exports.getById = function(req, res, next) {
    mongo.client.connect(mongo.url, function(err, db){
        var id = req.params.id;
        var o_id = mongo.ObjectId(id); // this is my solutions
        var data = db.collection("settings").findOne({_id:o_id}).then(function(doc) {
            console.log(doc);
            db.close();
        });
    });
};

最新更新