用猫鼬索引

时间:2021-01-23 07:50:49

标签: node.js mongodb mongoose mongoose-schema mongodb-indexes

我正在阅读有关索引的 mongoose 文档,并想找出字段级索引和架构级索引之间是否存在差异。他们提到“在创建复合索引时需要在模式级别定义索引”。是否还有其他原因可以让我选择一个而不是另一个,或者这只是一种偏好?

  const animalSchema = new Schema({
    name: String,
    type: String,
    tags: { type: [String], index: true } // field level
  });

  animalSchema.index({ name: 1, type: -1 }); // schema level

1 个答案:

答案 0 :(得分:0)

在制定索引策略时,您应该深入了解应用程序的查询。在构建索引之前,请绘制出您将运行的 queries 的类型,以便您可以构建引用这些字段的索引。 例如,您有一个查询只是基于 name 这样的一个字段查找,因此您可以在 name 中索引 field level 但如果您有一个基于 name 和 { 查找的查询{1}} 所以你应该在这种情况下将 tagname 索引在一起,你应该在 tag

中使用索引