如何在Node.js中返回mongodb客户端单行结果?

时间:2016-12-27 06:23:26

标签: node.js mongodb

我在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/

1 个答案:

答案 0 :(得分:1)

我已经解决了我自己的错误!使用此参考链接:Querying a MongoDB based on Mongo ID in a node.js app

我的旧代码:

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