我尝试使用npm Mongoose和Robomongo作为我的GUI在MongoDB中创建数据库。我在http://mongoosejs.com/docs/index.html跟踪了MongoDB快速入门文档,但数据库没有出现在Robomongo中。基本上,我只是想让数据库出现"当我通过Node运行server.js文件时,在Robomongo中。
当我输入以下代码时,从MongoDB快速入门文档中,在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);
但是... 当我将employeeid字段(下面)添加到Schema中时,数据库将出现在Robomongo中。 有人可以解释这两段代码之间的区别吗?为什么一个有效,另一个没有?
var kittySchema = mongoose.Schema({
name: {type: String},
employeeid:{
type: Number,
unique: true,
required: true
}
});
答案 0 :(得分:1)
这是因为employeeid
上有一个索引(来自unique
,至少 - 可能required
?不是100%肯定mongoose如何处理必填字段)。 Mongoose将自动创建在其上定义索引的集合。
否则,将在您对其进行“处理”之后创建该集合(例如创建Kitten
并使用.save()
)。