在MongoDB中通过id查找返回null
我是NodeJS
和MongoDB
的新手
我正在尝试做一个非常基本的东西,但它似乎没有工作。 我确信我在某处丢失了某些东西。
基本上,我试图根据id从DB中找到用户。 这是我的代码:
function findUser(id, cb) {
MongoClient.connect(cs, function(err, db) {
var col = db.collection('users');
col.findOne({ _id: id }, function(err, user) {
// Value of user here is always null
// However, if I manually check the database,
// I can clearly see that the user with the
// same id does exists.
return cb(err, user);
});
});
}
回答如下:
我假设你的id
是string
类型
如果是这种情况,您需要将其转换为适当的Mongo ObjectID
试试这段代码:
var ObjectID = require('mongodb').ObjectID;
function findUser(id, cb) {
MongoClient.connect(cs, function(err, db) {
var col = db.collection('users');
col.findOne({ _id: new ObjectID(id) }, function(err, user) {
return cb(err, user);
});
});
}
在MongoDB中通过id查找返回null
我是NodeJS
和MongoDB
的新手
我正在尝试做一个非常基本的东西,但它似乎没有工作。 我确信我在某处丢失了某些东西。
基本上,我试图根据id从DB中找到用户。 这是我的代码:
function findUser(id, cb) {
MongoClient.connect(cs, function(err, db) {
var col = db.collection('users');
col.findOne({ _id: id }, function(err, user) {
// Value of user here is always null
// However, if I manually check the database,
// I can clearly see that the user with the
// same id does exists.
return cb(err, user);
});
});
}
回答如下:
我假设你的id
是string
类型
如果是这种情况,您需要将其转换为适当的Mongo ObjectID
试试这段代码:
var ObjectID = require('mongodb').ObjectID;
function findUser(id, cb) {
MongoClient.connect(cs, function(err, db) {
var col = db.collection('users');
col.findOne({ _id: new ObjectID(id) }, function(err, user) {
return cb(err, user);
});
});
}