2016-12-14 9 views
0

私はGUIとしてnong MongooseとRobomongoを使ってMongoDBにデータベースを作成しようとしています。私はhttp://mongoosejs.com/docs/index.htmlのMongoDB Quickstart Docsに従っていますが、データベースはRobomongoには表示されません。基本的には、Nodeを介してserver.jsファイルを実行すると、データベースをRobomongoに「表示」させようとしています。問題を抱えているMongoDBを使ってMongoDBデータベースを作成する

以下のコードを入力すると、MongoDB Quickstart Docsから、Robomongoに作成/表示されるデータベースはありません。

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/test'); 

var db = mongoose.connection; 
db.on('error', console.error.bind(console, 'connection error:')); 
db.once('open', function() { 
    // we're connected! 
}); 

var kittySchema = mongoose.Schema({ 
    name: String 
}); 

var Kitten = mongoose.model('Kitten', kittySchema); 

しかし... 、私はスキーマに(下)社員のフィールドに追加すると、データベースはRobomongoに表示されます。 誰かがこの2つのコードの違いを説明できますか?なぜ1つは働き、もう1つはしませんか?

var kittySchema = mongoose.Schema({ 
    name: {type: String}, 
    employeeid:{ 
     type: Number, 
     unique: true, 
     required: true 

    } 
}); 

答えて

1

employeeidは(少なくともuniqueから、 - あまりにもおそらくrequiredフィールドを必要とする方法マングースのハンドルには100%確実ではない?)それにインデックスを持っているからです。 Mongooseはインデックスが定義されたコレクションを自動的に作成します。

それ以外の場合は、コレクションを作成した後にコレクションを作成します(Kittenを作成し、.save()を使用するなど)。

+1

あなたはうまくいきました!私は.save()関数を使い、最終的にname属性だけでデータベースにコレクションを作成しました。私がそれに救われるまでは現れなかった。私は真剣にこれを理解しようとしている最後の3時間を過ごしました。ありがとう!! – mfkogan

+1

問題はありません - それは少し直感的ではありませんが、mongodbがそれをどのように処理するかです。たとえば、mongoコマンドラインを使用すると、データベースに切り替えて選択することができますが、挿入するまでデータベースは存在しません。 mongodb号のトラッカーには、いくつかの追加の読書(こちら)(https://jira.mongodb.org/browse/SERVER-18313)があります(下のコメントを参照)。 – dvlsg

関連する問題