Skip to content

Index Management

Pie provides automated index creation and management functionality.

// Create index manager
indexes := pie.MustIndexes(engine)
// Create indexes for struct
err := indexes.CreateIndexes(ctx, User{})
// Manual index creation
err := indexes.CreateIndex(ctx, "users", bson.D{
{"email", 1},
}, &options.IndexOptions{
Unique: pie.Bool(true),
})
type User struct {
ID bson.ObjectID `bson:"_id,omitempty"`
Name string `bson:"name" pie:"index"`
Email string `bson:"email" pie:"unique"`
Age int `bson:"age" pie:"index,sparse"`
CreatedAt time.Time `bson:"created_at" pie:"index"`
}