如何使用Node JS驱动程序创建新的MongoDb数据库

时间:2016-01-04 02:38:48

标签: javascript node.js mongodb

我想使用Node JS驱动程序在MongoDB中创建一个新数据库。我尝试了以下方法,但没有一个创建任何数据库(我使用mongo shell和RoboMongo检查),最糟糕的是,它没有显示任何错误,下面的程序执行成功没有任何错误(我的意思是,错误是NULL)

  • 第一种方法,使用Mongo Server

var Db = require('mongodb').Db, 
Server = require('mongodb').Server;

var db = new Db('myNewDatabase', new Server('localhost', 27017));
db.open(function (err, db) {
  if (err) {
  	console.dir('ERROR we are in the callback of the open ');
  	console.dir(err);

  	throw err;
  }	

  // Use the admin database for the operation
  var adminDb = db.admin();

  console.dir('we are in the callback of the open');
  db.close();
 
});

  • 我遵循的第二种方法是:

var server = "localhost";
var port   = 27017; 
var dbName = "myNewDatabase";
var mongodb          = require('mongodb');
var mongoClient = mongodb.MongoClient;
var connString = "mongodb://"+server+":"+port+"/"+dbName;

mongoClient.connect(connString, function(err, db) {
    console.dir(err);
    if(!err) {
        console.log("\nMongo DB connected\n");          
        db.collection('test_correctly_access_collections', function(err, col2) {
        	console.dir(err);
			if(err) {
				console.dir('Thier is a error in creating collection');
				console.dir(err);
			}
			console.log("\nColllection created succesfully\n");          
			db.close();
        });	
    }
    else{
        console.log("Mongo DB could not be connected");
        process.exit(0);
    }
});

根据这个link,我们可以使用getDatabase API创建一个新的数据库,我尝试在Node JS中使用相同的API,但我找不到。

1 个答案:

答案 0 :(得分:1)

在google和stackOverflow中搜索此问题,但我能够找到,只有极少数。所以我自己发布了答案。

首先,谢谢你@somallg,你是对的,我投了你的评论。

答案是,您需要将文档插入集合中,然后MongoDB将创建新数据库以及集合。因此,在我的问题的上述方法中,我们可以使用Node JS Driver创建一个新数据库,如下所示:

  • First Appoarch



Configuration.LazyLoadingEnabled = false; // in the db context class




  • 第二种方法



var Db = require('mongodb').Db, 
Server = require('mongodb').Server;

var db = new Db('myNewDatabase', new Server('localhost', 27017));

db.open(function (err, db) {
  if (err) {
  	console.dir('ERROR we are in the callback of the open ');
  	console.dir(err);

  	throw err;
  }	

   var collection = db.collection("simple_document_insert_collection_no_safe");
   collection.insert({hello:'world_no_safe'});

  console.dir('we are in the callback of the open');
  db.close();
 
});