我想使用Node JS驱动程序在MongoDB中创建一个新数据库。我尝试了以下方法,但没有一个创建任何数据库(我使用mongo shell和RoboMongo检查),最糟糕的是,它没有显示任何错误,下面的程序执行成功没有任何错误(我的意思是,错误是NULL)
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,但我找不到。
答案 0 :(得分:1)
在google和stackOverflow中搜索此问题,但我能够找到,只有极少数。所以我自己发布了答案。
首先,谢谢你@somallg,你是对的,我投了你的评论。
答案是,您需要将文档插入集合中,然后MongoDB将创建新数据库以及集合。因此,在我的问题的上述方法中,我们可以使用Node JS Driver创建一个新数据库,如下所示:
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();
});