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