2016-07-09 5 views
0

私はmongodbの周りを頭で囲むのに大きな問題を抱えています。mongodbがwron uriでエラーにならない

まず、私はマングースを使ってみましたが、実際にスキーマが気に入らず、自分のクラスを持っていて、CRUD操作を古典的なスタイルで実行したいと思います。

私は移動し、mongodbを使用し始めました。私はすでにドキュメントを非常にあいまいであると見なしているので、MySQLをあきらめて使っていると思うし、githubに関する一般的なissueトラッカーもない。

とにかく、私の問題は、既存のデータベースに存在しないか、存在しないホストに接続すると、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

直接あなたのコードからコピーされていることですか? db_uriが文字列でない場合は、開始引用符がありません。また、github https://github.com/mongodb/node-mongodb-native – curtainrising

+0

@ curtainrisingええ、何らかの理由でコピープロセスで失われた:Dしかし、それは問題ではなかった;)私は質問を編集する、ありがとう。 – avcajaraville

+0

だから私はそれをテストした。コマンドラインでmongodbに接続する場合と同様に、エラーなく任意のデータベースに接続できます。自動的に作成されます。しかし、あなたがコレクションの挿入/作成を行うまで、それは永続的になりません。 – curtainrising

答えて

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){ 
 
    }); 
 
});

関連する問題