From dcfbe0a6fc17229b6b9a2cd889f6ac7d2a071647 Mon Sep 17 00:00:00 2001 From: Arnaud Mimart <33665250+amimart@users.noreply.github.com> Date: Fri, 25 Nov 2022 17:57:27 +0100 Subject: [PATCH] feat: add mongo indexes --- app/nemeton/store.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/app/nemeton/store.go b/app/nemeton/store.go index 7457ee9..1bee7e1 100644 --- a/app/nemeton/store.go +++ b/app/nemeton/store.go @@ -68,9 +68,29 @@ func (s *Store) init(ctx context.Context) error { s.phases = append(s.phases, &phase) } + if err := s.ensureIndexes(ctx); err != nil { + return err + } return nil } +func (s *Store) ensureIndexes(ctx context.Context) error { + _, err := s.db.Collection(validatorsCollectionName). + Indexes(). + CreateMany( + ctx, + []mongo.IndexModel{ + {Keys: bson.M{"points": 1}}, + {Keys: bson.M{"moniker": 1}}, + {Keys: bson.M{"valoper": 1}, Options: options.Index().SetUnique(true)}, + {Keys: bson.M{"delegator": 1}, Options: options.Index().SetUnique(true)}, + {Keys: bson.M{"twitter": 1}, Options: options.Index().SetUnique(true)}, + {Keys: bson.M{"discord": 1}, Options: options.Index().SetUnique(true)}, + }, + ) + return err +} + func (s *Store) GetPhase(number int) *Phase { for _, phase := range s.phases { if phase.Number == number {