Mongo / Mongoose:Mongoose会自动在ObjectId类型上创建索引吗?

时间:2017-04-28 15:03:08

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

我可能在mongo索引文档或mongoose文档中错过了这个。

假设我有一个mongoose架构:

const SomeEntity = new Schema({
  foo:  { type: String, required: true },
  bar   { type: Schema.ObjectId, ref: 'Bar' }
});

我应该在字段bar上创建索引还是mongo会自动解决此问题?

换句话说,mongo是否自动为ObjectId类型创建索引?

1 个答案:

答案 0 :(得分:4)

  

换句话说,mongo是否自动为ObjectId类型创建索引?

不,MongoDB创建的唯一自动索引is for the _id field

但是,如果您需要bar的索引,则取决于您针对模型运行的查询类型。

由于bar引用_id集合中的bars文档字段,因此这些文档本身将由将在其上创建的自动_id索引覆盖集合。

但是如果你需要能够在" SomeEntity"中找到文件。引用特定栏的集合:

SomeEntity.find({ bar : someBarId })

...那么你可能想为它创建一个索引:

bar: { type: Schema.ObjectId, ref: 'Bar', index : true }