1 / 1
Jul 2024

I have a collection with a unique index comprising fields x, y, and z, plus a full text index on another field t.

{ key: {x:1, y:1, z:1}, unique: true } { key: {t:"text"}, unique:false }

When querying the full text index, I will always specify x and y (but not z), as follows:

{ x:1, y:2, $text: { $search: "Foo" } }

Sometimes specific combinations of x and y:

{ $or: [ {x:1,y:2}, {x:2,y:3} ] $text: { $search: "Foo" }, }

My question is whether it’s beneficial to add x and y to the text index in addition to the unique index, or whether MongoDB can perform index intersection effectively in this case?

To clarify, should my indexes look like this?

{ key: {x:1, y:1, z:1}, unique: true } { key: {x:1, y:1, t:"text"}, unique:false }