2016-09-13 2 views
1

Nodeワークスペースのserver.jsファイルに次のコードがあります。私の質問は、私がserver.jsファイルをbashコマンドラインから実行するたびに、私はpollsという新しいコレクションを設定していますか?あるいは、MongoDbはコレクションがすでに存在することを認識していますか? Mongoとの接続を終了してコマンドラインから再起動するとどうなりますか?次のコードのdb.createCollectionは常に新しいデータベースを設定しますか?

mongo.connect('mongodb://localhost:27017/url-shortener', function(err, newDb){ 
    if(err){ 
     throw new Error('Database failed to connect'); 
    }else{ 
     console.log('Successfully connected to MongoDb database'); 
    } 
    db = newDb; 
    db.createCollection('polls', { 
     autoIndexId: true 
    }); 
}); 
+1

でのMongoDB nodejsドライバのマニュアルを参照してくださいすることができます: 'URL-shortener'。 ''db.createCollection'は新しいデータベースを作成できません – corry

答えて

2

db.createCollectionは、デフォルトでは、コレクションがすでに存在する場合trueに設定したときにエラーオブジェクトを返しますfalseあるstrictというオプションがあります。既存のコードを変更して、名前がpollsのコレクションが存在するかどうかを確認し、存在する場合はエラーをスローします。追加情報については

mongo.connect('mongodb://localhost:27017/url-shortener', function(err, newDb){ 
    if(err){ 
     throw new Error('Database failed to connect'); 
    } else{ 
     console.log('Successfully connected to MongoDb database'); 
    } 
    db = newDb; 
    db.createCollection('polls', { 
     autoIndexId: true, 
     strict: true 
    }, function(err, collection) { 
     if(err) { 
     //handle error case 
     } 
    }); 
}); 

、あなたはすでに最初の行にあるデータベースへのパスを定義したthisリンク

関連する問題