用猫鼬索引

问题描述

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

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

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

解决方法

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

中使用索引

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...