MongoDB-我应该索引什么

MongoDB-我应该索引什么,mongodb,database-design,mongoose,Mongodb,Database Design,Mongoose,我的数据库中有一个用于存储应用程序的集合: { _id: <ObjectId>, //MongoDB's default id public_key: "abcde12345", //10 character string private_key: "abcdefg1234567", //14 character string name: "Cool App", desc: "This is a cool app", calls: 145 } 我需要搜索使用

我的数据库中有一个用于存储应用程序的集合:

{
  _id: <ObjectId>, //MongoDB's default id
  public_key: "abcde12345", //10 character string
  private_key: "abcdefg1234567", //14 character string
  name: "Cool App",
  desc: "This is a cool app",
  calls: 145
}
我需要搜索使用公钥和私钥的应用程序,我不想盲目地在我的模式中为这两个应用程序添加索引,而不真正了解它们是否应该被索引


有人能建议哪些字段应该有索引吗

索引哪些部分完全取决于哪个查找查询最重要。这些通常是执行得最频繁的


当您的应用程序经常搜索公钥和私钥时,这些都是很好的索引候选项。当您总是搜索精确的值时,应该将它们定义为散列索引。在大型集合上,它们比排序索引快得多,但只允许按精确值搜索。

感谢您的建议-我通常会通过Mongoosejs创建一个索引,如{type:String,index:true}-我如何将它们定义为散列,因为我将搜索精确的值?@tommyd456:see-不确定如何使用mongoose,但我想谷歌会告诉我