Versions in this module Expand all Collapse all v1 v1.0.1 Apr 13, 2026 v1.0.0 Apr 10, 2026 Changes in this version + type Client struct + func NewClient(opts ...Option) (*Client, error) + func (c *Client) CheckConnect() bool + func (c *Client) Close() + func (c *Client) Count(ctx context.Context, collection string, filter interface{}) (int64, error) + func (c *Client) DeleteMany(ctx context.Context, collection string, filter interface{}) (*mongoV2.DeleteResult, error) + func (c *Client) DeleteOne(ctx context.Context, collection string, filter interface{}) (*mongoV2.DeleteResult, error) + func (c *Client) Exist(ctx context.Context, collection string, filter interface{}) (bool, error) + func (c *Client) Find(ctx context.Context, collection string, filter interface{}, ...) error + func (c *Client) FindOne(ctx context.Context, collection string, filter interface{}, result interface{}) error + func (c *Client) FindOneAndUpdate(ctx context.Context, collection string, filter, update interface{}, ...) error + func (c *Client) InsertMany(ctx context.Context, collection string, documents []interface{}) (*mongoV2.InsertManyResult, error) + func (c *Client) InsertOne(ctx context.Context, collection string, document interface{}) (*mongoV2.InsertOneResult, error) + func (c *Client) UpdateMany(ctx context.Context, collection string, filter, update interface{}) (*mongoV2.UpdateResult, error) + func (c *Client) UpdateOne(ctx context.Context, collection string, filter, update interface{}) (*mongoV2.UpdateResult, error) + type Option func(o *Client) + func WithBSONOptions(opt *optionsV2.BSONOptions) Option + func WithConnectTimeout(connectTimeout time.Duration) Option + func WithCredentials(username, password string) Option + func WithDatabase(database string) Option + func WithHeartbeatInterval(interval time.Duration) Option + func WithLocalThreshold(threshold time.Duration) Option + func WithLogger(logger log.Logger) Option + func WithMaxConnIdleTime(maxIdleTime time.Duration) Option + func WithServerSelectionTimeout(serverSelectionTimeout time.Duration) Option + func WithTLSConfig(tlsConfig *tls.Config) Option + func WithTimeout(timeout time.Duration) Option + func WithURI(uri string) Option + type Repository struct + func NewRepository[DTO any, ENTITY any](client *Client, collection string, mapper *mapper.CopierMapper[DTO, ENTITY], ...) *Repository[DTO, ENTITY] + func (r *Repository[DTO, ENTITY]) BatchCreate(ctx context.Context, dtos []*DTO) ([]*DTO, error) + func (r *Repository[DTO, ENTITY]) Count(ctx context.Context, qb *query.Builder) (int64, error) + func (r *Repository[DTO, ENTITY]) Create(ctx context.Context, dto *DTO) (*DTO, error) + func (r *Repository[DTO, ENTITY]) Delete(ctx context.Context, qb *query.Builder) (int64, error) + func (r *Repository[DTO, ENTITY]) Exists(ctx context.Context, qb *query.Builder) (bool, error) + func (r *Repository[DTO, ENTITY]) Get(ctx context.Context, qb *query.Builder, viewMask *fieldmaskpb.FieldMask) (*DTO, error) + func (r *Repository[DTO, ENTITY]) ListWithPagination(ctx context.Context, req *paginationV1.PaginationRequest) ([]*DTO, int64, error) + func (r *Repository[DTO, ENTITY]) ListWithPaging(ctx context.Context, req *paginationV1.PagingRequest) ([]*DTO, int64, error) + func (r *Repository[DTO, ENTITY]) Update(ctx context.Context, qb *query.Builder, updateDoc interface{}) (*DTO, error)