当前位置:  开发笔记 > 编程语言 > 正文

使用Mongoose指定索引名称

如何解决《使用Mongoose指定索引名称》经验,为你挑选了1个好方法。

定义Mongoose模式时,通常应谨慎指定应存在哪些索引.也就是说,在许多情况下,我们希望控制创建的索引的名称,尤其是当这些索引是复合的,这样它们是可以理解的.

实际上,在创建某些索引时,需要明确指定索引名称以避免超出index name length limit.

由于ensureIndex(在默认情况下)对模式中定义的索引进行调用,因此控制由ensureIndex创建的索引名称的适当语法是什么?我认为使用字段级索引语法是不可能的,但它肯定可用于模式级索引吗?

var ExampleSchema = new Schema({
  a: String,
  b: String,
  c: Date,
  d: Number,
  e: { type: [String], index: true } // Field level index
});

// We define compound indexes in the schema
ExampleSchema.index({a: 1, b: 1, c: 1});
ExampleSchema.index({d:1, e:1}, {unique: true});

值得注意的是,db.collection.ensureIndex已弃用(通过mongodb),现在是别名db.collection.createIndex.



1> JohnnyHK..:

您可以使用调用name的option参数的属性设置索引的名称index:

ExampleSchema.index({a: 1, b: 1, c: 1}, {name: 'my_index'});
ExampleSchema.index({d:1, e:1}, {name: 'my_other_index', unique: true});

如文档中所述,第二个参数index包含:

传递给MongoDB驱动程序createIndex()函数的选项

createIndex文档列出所有可能的选项设置,包括name.

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有