应该如何使用mongoose的模型('索引',…)?

在查看MongooseJS for MongoDB/Node.js的文档时,似乎可以在对象上指定索引,如下所示:

 var MyModelSchema = new Schema({ name: String, index: true }); var MyModel = mongoose.model('MyModel', MyModelSchema); MyModel.on('index', function() { doStuff(); }); 

根据文档,Mongoose将在启动时调用ensureIndex() ,除非在模式"autoIndex"选项显式设置为false。 一旦完成, 'index'事件将在模型上发射,这将触发callback。

我的理解是这允许模型的用户在使用模型之前确保所有的索引已经完成。

我相信我听说通过app.configure这样做,虽然我不知道如何做到这一点。 也许还有另外一种方法可以保证在依赖导出模型的应用程序的其他部分之前完成这个索引操作?

应该如何正确使用?

模型上的'index'事件可以提醒您模型的ensureIndex调用中发生的任何错误。 事件发生之前,您不需要延迟使用模型。 那会很麻烦。

我发现将以下内容添加到用于configuration项目的mongoose设置的区域非常有用。

 let mongoose = require('mongoose'); mongoose.Model.on('index', function(err) { if (err) logger.error(err); });