我可能在mongo索引文档或mongoose文档中错过了这个。
假设我有一个mongoose架构:
const SomeEntity = new Schema({
foo: { type: String, required: true },
bar { type: Schema.ObjectId, ref: 'Bar' }
});
我应该在字段bar
上创建索引还是mongo会自动解决此问题?
换句话说,mongo是否自动为ObjectId类型创建索引?
答案 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 }