2016-12-27 17 views
-1

NodeJsにMongoClient = require('mongodb').MongoClient;モジュールを使用しています。しかし、私は単一の行を取得していませんJSONノードのオブジェクトの結果。私はmongodbクライアントモジュールで何の考えも持っていません。Node.jsでmongodbクライアントの単一行結果を返す方法は?

簡単な問い合わせ:select *from settings where id=1;

モンゴクエリ:これは正常に動作している

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

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

私は次のように複数のJSONの行を取得しています。しかし、私は単一の行を取得することができませんでした。

私はこのライブラリを使用しています:http://mongodb.github.io/node-mongodb-native/2.2/installation-guide/

+0

findOneをので、あなたの予想される出力は何ですか? –

+0

jsonオブジェクトでこの結果が得られましたか?取得する方法? –

+0

javacriptオブジェクトは返されるものです – Zeokav

答えて

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(); 
     }); 
    }); 
}; 
関連する問題