无法读取null的属性'collection'

时间:2016-12-13 07:38:25

标签: node.js mongodb

这是我的代码

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

// Connect to the db

MongoClient.connect("mongodb://localhost:27017/exampleDb", function(err, db) {
  if(!err) { 
     console.log('we are connected'); 
  }

  var k ='testt';
  var collection = db.collection(k);
  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) {});

});

并显示此错误“无法读取属性'集合'为null”。

1 个答案:

答案 0 :(得分:2)

问题是您是否直接调用db.collection,无论数据库连接是否成功。您需要检查数据库连接是否存在错误。 db.collection仅在数据库连接成功时有效。请查看以下示例以便更好地理解

 MongoClient.connect('mongodb://localhost:27017/test',function(err,db){
    if(err)
    {
        console.log(err);
    }
    else
    {
        console.log("Connected to db");

        db.collection('testt').insert({"doc1":"hello"},function(err,data){

      if(err)
    {
      throw(err);
    }
    else
    {
     console.log("sucessfuly inserted");
    }

})