我应该什么时候打电话给ensureIndex?在插入单个记录之前,插入单个记录之后,还是在调用find()之前?
问候,
约翰尼
看来我的评论有点被误解了,所以我会澄清一下.只要在第一次调用find()之前调用它就会调用它并不重要.换句话说,创建索引并不重要,只要它在您希望使用它之前就已存在.
我见过的一个常见模式是ensureIndex
与find()
呼叫同时(并在同一个地方)编码.ensureIndex
将检查索引是否存在,如果不存在则创建它.在调用find()之前调用ensureindex毫无疑问会有一些开销(尽管很小),所以最好不要这样做.
我确实调用ensureIndex
代码来简化部署并避免单独管理数据库和代码库.易于部署的权衡平衡了后续调用ensureIndex(对我而言)的冗余.
我建议在应用程序启动时调用ensureIndex一次.