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