MongoDB (Node) findOne 函数在按 ID 搜索时不返回结果

MongoDB (Node) findOne function does not return results when searching by ID

本文关键字:搜索 ID 结果 返回 Node findOne 函数 MongoDB      更新时间:2023-09-26

伙计们,我真的不明白我做错了什么。尝试了我在互联网上可以找到的所有内容,但我无法在我的 Node 应用程序中按 ID 获取文档。所以情况是这样的:

如果我在终端中使用MongoDB shell,则会产生:

db.tochten.find({"_id" : ObjectId("577a6640c27dc10de81b265d")})
{ "_id" : ObjectId("577a6640c27dc10de81b265d"), "datum" : "2016-07-07", "weergavedatum" : "donderdag 7 juli", "begintijd" : "20:00", "eindtijd" : "21:00", "schip" : "Ouwe Dirk", "tocht" : "Rondvaart", "maxaantal" : "40", "opemerkingen" : "", "reserveringen" : [ ] }

到目前为止一切顺利吧?

在我的节点应用程序中

//open db connection
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
// Set our collection
var col = db.collection('tochten');
//objectid stuff
var ObjectId = require('mongodb').ObjectID;
var o_id = new ObjectId("577a6640c27dc10de81b265d");
col.findOne({_id:o_id},function(err, docs) {
      console.log("Printing docs from Array. count " +      JSON.stringify(docs));
    });
db.close();
});

生成空值。我真的在这个问题上打破了我的头。有人可以告诉我我做错了什么吗?

您将在

结果到达之前关闭数据库:

col.findOne({_id:o_id},function(err, docs) {
  console.log("Printing docs from Array. count " + JSON.stringify(docs));
});
db.close(); // <-- here!

相反,请在结果到达关闭数据库:

col.findOne({_id:o_id},function(err, docs) {
  console.log("Printing docs from Array. count " + JSON.stringify(docs));
  db.close();
});