尝试创建 MongoDB 索引。使用 Mongoose ODM 并在下面的模式定义中,我将用户名字段设置为唯一索引。集合和文档都已正确创建,只是索引不起作用。所有文档都说 ensureIndex 命令应该在启动时运行以创建任何索引,但没有创建任何索引。如果这很重要,我正在使用 MongoLab 进行托管。我也多次放弃收藏。怎么了。
var schemaUser = new mongoose.Schema({
username: {type: String, index: { unique: true }, required: true},
hash: String,
created: {type: Date, default: Date.now}
}, { collection:'Users' });
var User = mongoose.model('Users', schemaUser);
var newUser = new Users({username:'wintzer'})
newUser.save(function(err) {
if (err) console.log(err);
});
最佳答案
在模型上钩住'index'
事件,看看异步创建索引时是否出现错误:
User.on('index', function(err) {
if (err) {
console.error('User index error: %s', err);
} else {
console.info('User indexing complete');
}
});
另外,通过调用启用 Mongoose 的调试日志记录:
mongoose.set('debug', true);
调试日志将显示 ensureIndex
调用它为您创建索引。
关于javascript - Mongoose 不创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12452865/