javascript - Mongoose 不创建索引

标签 javascript node.js mongodb mongoose

尝试创建 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/

相关文章:

javascript - 从另一个不同的 AngularJS 组件访问表单(用于验证)

javascript - Firebase 未捕获引用错误 Backbone/Fetch 在 Firebase 集合上调用,忽略。

javascript - 使用 JavaScript 从 YouTube 视频中截取屏幕截图

javascript - 在发送后抛出新的错误 ('Can\' t 设置 header 。') 导致崩溃

Node.js : which keys in req. 主体存在于模式中

node.js - Mongoose 通过 ObjectId 查找

javascript - 从 AJAX 请求获取页面内容后,我可以选择标签元素,但无法选择正文元素

java - MongoDB 和 Apache Mahout 连接错误

java - 在 mongo 中将 POJO 对象转换为 DBObject

javascript - Node.JS:事件发射器