0

我正在尝试查询我的数据库以获取匹配的“_id”,但结果返回为空,但在 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'。

4

2 回答 2

1

正确的语法是:

collection.findOne({ _id : new mongodb.ObjectID('50738ebbe3d87c6beaddb6f2') }, 
  function(err, result){
    res.send(result);
    console.log(result);
  }
);
于 2012-10-19T18:12:59.737 回答
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);
});
于 2014-03-07T01:02:42.063 回答