我最近开始使用 Mongoose (v.3.2.1),但我遇到了索引问题。
我在我的模式( Schema.path('attr').index(true) )上定义了几个索引,它们没有在数据库中创建。(我在 shell 中运行 db.collection.getIndexKeys() 并且只看到 _id 索引)。
请注意,有时会创建一些/所有索引。
我打开了调试,我看到 ensureIndex() 正在运行:
mongoose.set('debug', true);
Mongoose: myColl.ensureIndex({ type: 1 }) { safe: true, background: true }
Mongoose: myColl.ensureIndex({ created: 1 }) { safe: true, background: true }
Mongoose: myColl.ensureIndex({ updated: 1 }) { safe: true, background: true }
我还听了错误:
mongoose.connection.on('error', function(err) {
console.error('MongoDB error: %s', err);
});
myCollModel.on('index',function(err) {
console.error('MongoDB error: %s', err);
});
我可以在控制台中看到我的插入和查询,但没有错误。
任何帮助将不胜感激!
谢谢,
尼赞酒吧
我的架构是这样定义的:
myColl = new Schema();
myColl.add({
text : { type: String, required : true }
, shortText: { type: String }
, type : { type: String , index: true}
, correctAnswerId : { type: ObjectId, ref: QuestionAnswer}
, answers: { type: [ QuestionAnswer ] }
});
在这种情况下,不创建“类型”索引。请注意,有时在运行 ensureIndexes() 几次后,它们会被创建。
谢谢!