查询“_id”时,Node.js的MongoDB本机驱动程序未返回结果

时间:2012-10-19 17:07:11

标签: node.js mongodb express

我正在尝试查询我的数据库以找到匹配的'_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'。

2 个答案:

答案 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);
});