节点js mongo找到最后插入

时间:2015-03-13 09:23:40

标签: node.js mongodb

我很难在mongo中找到最后插入的元素。我正在使用我找到的示例代码并尝试进行查询并显示该项目,但我收到错误。我知道我想做这样的事情。

db.collectionName.findOne({}, {sort:{$natural:-1}})

但这是我到目前为止所做的,而且它没有用。

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
  if(err) { return console.dir(err); }

  var collection = db.collection('test');
  var doc1 = {'hello':'doc1'};
  var doc2 = {'hello':'doc2'};
  var lotsOfDocs = [{'hello':'doc3'}, {'hello':'doc4'}];

  collection.insert(doc1);
  collection.insert(doc2, {w:1}, function(err, result) {});
  collection.insert(lotsOfDocs, {w:1}, function(err, result) {});

  collection.find({}).toArray(function(err, docs) {
    console.log(docs[0]);
  });

  db.close();
});

这是错误。

nodejs/node_modules/mongodb/lib/mongodb/connection/base.js:246
        throw message;
              ^
TypeError: Cannot read property '0' of null

我检查确保数据库不是空的,所以我不确定它为什么返回null。

1 个答案:

答案 0 :(得分:3)

我找到了解决问题的可能方案(here)。这可能是由于数据库连接在您发出的操作完成之前关闭。

您可以通过在db.close()查询中添加find来修复此问题。

 collection.find({}).toArray(function(err, docs) {
    console.log(docs[0]);
    db.close();
  });
相关问题