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

9

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

假设我有一个如下的mongoose模式:

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

我应该在字段bar上创建索引,还是Mongo会自动处理?

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

1个回答

15
换句话说,MongoDB是否会自动为ObjectId类型创建索引?
不会,MongoDB只会自动为_id字段创建索引。
但是,如果您需要针对模型运行特定类型的查询,则需要为bar创建索引。
由于bar是指在bars集合中文档的_id字段,因此这些文档本身将被自动创建在该集合上的_id索引所覆盖。
但是,如果您需要查找引用特定bar的"SomeEntity"集合中的文档:
SomeEntity.find({ bar : someBarId })

如果您想创建一个索引,那么您可能需要为其创建一个索引:
bar: { type: Schema.ObjectId, ref: 'Bar', index : true }

谢谢你的回答。是的,后者正是我所需要的。 - dipole_moment

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接