我正在尝试查询我的数据库以找到匹配的'_id',但结果将返回null,但是在mongodb shell中它会返回正确的结果。这是我正在使用的代码。
var collection = new mongodb.Collection(client, 'products');
collection.findOne({ _id : 50738ebbe3d87c6beaddb6f2 }, function(err, result){
res.send(result);
console.log(result);
});
我也尝试过使用,
"ObjectId('50738ebbe3d87c6beaddb6f2')"
但也会回来'null'。
答案 0 :(得分:1)
正确的语法是:
collection.findOne({ _id : new mongodb.ObjectID('50738ebbe3d87c6beaddb6f2') },
function(err, result){
res.send(result);
console.log(result);
}
);
答案 1 :(得分:0)
这样可以正常使用 您可以使用BSON从HEX字符串获取ObjectID。
var mongodb = require('mongodb');
var BSON = mongodb.BSONNative;
var o_id = BSON.ObjectID.createFromHexString(theidID);
collection.findOne({'_id' : o_id}, function(err, document) {
console.log(document);
});