我正在将MongoDB用于我们的Web应用程序。假设MongoDB上有一个'find()'用于传入请求。在MongoDB集合上添加索引的推荐方法是什么?
我能想到的几个选项: -
1)初始化应用程序时集合上的'ensureIndex'。 [但是,在第一次申请初始化时,我将如何'确保索引'?因为没有任何数据]
每次“查找”操作之前2'insitIndex'(在网络请求上)?但即使'ensureIndex'在创建索引时不会创建索引,这不是开销吗?
还有其他选择吗?
提前致谢。
答案 0 :(得分:4)
我会在初始化应用程序时使用它。如果在调用ensureIndex时集合不存在,那么将在那时创建索引(和集合)。
我假设您事先知道您将在数据上运行什么类型的查询,以及您将在索引中添加哪种数据。
答案 1 :(得分:0)
启动应用程序时,请立即运行ensureIndex。如果在空集合上调用ensureIndex并不重要(因为它会在之后将数据添加到索引中)。
此外,它取决于您的查询所基于的属性。例如,如果您基于登录用户进行查询,则应在用户ID上添加索引。
答案 2 :(得分:0)
您可以为要从服务器命令行运行的集合创建初始化脚本(Mongo文档讨论如何编写Mongo脚本并从CLI运行它们)。然后每当mongod开始运行它?该脚本只能在集合对象上调用ensureIndex()。