I may have missed this in the mongo index documentation or in the mongoose documentation.
Suppose I have a mongoose schema as such:
const SomeEntity = new Schema({
foo: { type: String, required: true },
bar { type: Schema.ObjectId, ref: 'Bar' }
});
Should I be creating an index on field bar
or would mongo automatically address this?
In other words, does mongo automatically create indexes for ObjectId types ?
In other words, does mongo automatically create indexes for ObjectId types ?
No, the only automatic index that MongoDB creates is for the _id
field.
However, it depends on the type of queries you're going to run against your model if you need an index for bar
.
Since bar
refers to the _id
field of documents in the bars
collection, those documents themselves will be covered by the automatic _id
index that will get created on that collection.
But if you need to be able to find documents in the "SomeEntity" collection that refer to a specific bar:
SomeEntity.find({ bar : someBarId })
...then you probably want to create an index for it:
bar: { type: Schema.ObjectId, ref: 'Bar', index : true }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With