public async Task <long> SelectGroupCount(BuildGroup group) => await _buildCollection.CountAsync(new BsonDocument
 {
     new BsonElement(nameof(Build.MajorVersion), @group.Major),
     new BsonElement(nameof(Build.MinorVersion), @group.Minor),
     new BsonElement(nameof(Build.Number), @group.Build),
     new BsonElement(nameof(Build.Revision), @group.Revision)
 });
        public async Task <List <Build> > SelectGroup(BuildGroup group, int limit = -1, int skip = 0)
        {
            IFindFluent <Build, Build> query = _buildCollection.Find(new BsonDocument
            {
                new BsonElement(nameof(Build.MajorVersion), group.Major),
                new BsonElement(nameof(Build.MinorVersion), group.Minor),
                new BsonElement(nameof(Build.Number), group.Build),
                new BsonElement(nameof(Build.Revision), group.Revision)
            }).Sort(new BsonDocument
            {
                new BsonElement(nameof(Build.BuildTime), 1)
            }).Skip(skip);

            if (limit > 0)
            {
                query = query.Limit(limit);
            }

            return(await query.ToListAsync());
        }