我在试图绕着mongodb缠身时遇到了很大的问题。
首先,我尝试使用mongoose,但我真的不喜欢它的模式,我想拥有自己的类,并以经典风格执行CRUD操作。
所以我继续开始使用mongodb。我想我已经放弃并使用MySQL,因为我发现他们的文档非常模糊,而且github上也没有公共问题跟踪器。
无论如何,我的问题是,如果我连接到非现有数据库或非现有主机,mongodb不会显示任何错误。
我的代码:
const mongodb = require( 'mongodb' ),
MongoClient = mongodb.MongoClient;
let db_uri = `mongodb://${config.host}:${config.port}/${config.name}`;
MongoClient.connect( db_uri, function( err, mongoclient ) {
console.log( err );
});
假设config.host或config.port不正确。
错误总是无效。
为什么会这样?
答案 0 :(得分:0)
Mongodb做得很好(在某些情况下,如果你的手指很胖,真的很烦人),如果你试图连接一个不存在的数据库,它会为你创建它。我知道它在命令行中执行了此操作,但它似乎也使用此代码执行此操作。使用npm node instructions中的插入代码,我能够测试并验证这一点。
编辑 - 删除示例并添加实际有用的内容
这可能很麻烦,但有一种方法可以测试是否存在集合。你问索引是否存在。
const mongodb = require( 'mongodb' ),
MongoClient = mongodb.MongoClient;
var db_uri = "mongodb://localhost:27017/newDb";
MongoClient.connect( db_uri, function( err, db ) {
var collection = db.collection('documents');
collection.indexExists(0, function(err, indexExists){
});
});