我正在尝试使用NPM Mongoose和Robomongo作为我的GUI在MongoDB中创建数据库。我关注了MongoDB QuickStart文档,网址为http://mongoosejs.com/docs/index.html,但数据库并未出现在Robomongo中。基本上,我只是想在我通过node运行server.js文件时将数据库"出现"。
当我从mongodb Quickstart文档中输入代码时,没有创建/出现在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中。有人可以解释这两个代码之间的区别吗?为什么一个工作,另一个不起作用?
var kittySchema = mongoose.Schema({
name: {type: String},
employeeid:{
type: Number,
unique: true,
required: true
}
});
这是因为employeeid
上有一个索引(至少来自unique
,也许也可能是required
?不是100%确定在Mongoose手柄上如何需要字段)。Mongoose将自动创建在其上定义索引的集合。
否则,将在您"执行"某件事之后创建集合(例如创建Kitten
并使用.save()
wiht)。