mongodbstorage

package
v3.0.0-alpha.0...-b49f957 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2026 License: GPL-3.0 Imports: 25 Imported by: 13

Documentation

Index

Constants

View Source
const (
	ColNameInfo         = "info"
	ColNameManifest     = "manifest"
	ColNameBlockdataMap = "blockdata_map"
)

Variables

View Source
var IndexPrefix = "mitum_"

Functions

func LoadDataFromDoc

func LoadDataFromDoc(b []byte, encs *encoder.Encoders) (bson.Raw, interface{}, error)

func NewLastManifestDoc

func NewLastManifestDoc(height base.Height, enc encoder.Encoder) (lastManifestDoc, error)

Types

type BaseDoc

type BaseDoc struct {
	// contains filtered or unexported fields
}

func NewBaseDoc

func NewBaseDoc(id, data interface{}, enc encoder.Encoder) (BaseDoc, error)

func (BaseDoc) ID

func (do BaseDoc) ID() interface{}

func (BaseDoc) M

func (do BaseDoc) M() (bson.M, error)

type BaseDocBSONUnMarshaler

type BaseDocBSONUnMarshaler struct {
	I bson.Raw      `bson:"_id,omitempty"`
	E string        `bson:"_e"`
	D bson.RawValue `bson:"d"`
	H bool          `bson:"_hinted"`
}

type BaseManifestDocBSONUnMarshaler

type BaseManifestDocBSONUnMarshaler struct {
	I bson.Raw          `bson:"_id,omitempty"`
	E string            `bson:"_e"`
	D bson.RawValue     `bson:"d"`
	H bool              `bson:"_hinted"`
	O OperationItemInfo `bson:"operations"`
	T string            `bson:"confirmed_at"`
	P string            `bson:"proposer"`
	R uint64            `bson:"round"`
}

type Client

type Client struct {
	// contains filtered or unexported fields
}

func NewClient

func NewClient(uri string, connectTimeout, execTimeout time.Duration) (*Client, error)

func (*Client) Add

func (cl *Client) Add(col string, doc Doc) (interface{}, error)

func (*Client) AddRaw

func (cl *Client) AddRaw(col string, raw bson.Raw) (interface{}, error)

func (*Client) Aggregate

func (cl *Client) Aggregate(
	ctx context.Context,
	col string,
	pipeline interface{},
	callback getRecordsCallback,
	opts ...options.Lister[options.AggregateOptions],
) error

func (*Client) Bulk

func (cl *Client) Bulk(ctx context.Context, col string, models []mongo.WriteModel, order bool) error

func (*Client) Close

func (cl *Client) Close() error

func (*Client) Collection

func (cl *Client) Collection(col string) *mongo.Collection

func (*Client) Collections

func (cl *Client) Collections() ([]string, error)

func (*Client) CopyCollection

func (cl *Client) CopyCollection(source *Client, fromCol, toCol string) error

func (*Client) Count

func (cl *Client) Count(ctx context.Context, col string, filter interface{}, opts ...options.Lister[options.CountOptions]) (int64, error)

func (*Client) Database

func (cl *Client) Database(db string) *mongo.Database

func (*Client) Databases

func (cl *Client) Databases(filter interface{}) ([]string, error)

func (*Client) Delete

func (cl *Client) Delete(col string, filter bson.D, opts ...options.Lister[options.DeleteManyOptions]) (*mongo.DeleteResult, error)

func (*Client) DropDatabase

func (cl *Client) DropDatabase() error

func (*Client) Exists

func (cl *Client) Exists(col string, filter bson.D) (bool, error)

func (*Client) Find

func (cl *Client) Find(
	ctx context.Context,
	col string,
	query interface{},
	callback getRecordsCallback,
	opts ...options.Lister[options.FindOptions],
) error

func (*Client) GetByFilter

func (cl *Client) GetByFilter(
	col string,
	filter bson.D,
	callback getRecordCallback,
	opts ...options.Lister[options.FindOneOptions],
) error

func (*Client) GetByID

func (cl *Client) GetByID(
	col string,
	id interface{},
	callback getRecordCallback,
	opts ...options.Lister[options.FindOneOptions],
) error

func (*Client) MongoClient

func (cl *Client) MongoClient() *mongo.Client

func (*Client) New

func (cl *Client) New(db string) (*Client, error)

func (*Client) Raw

func (cl *Client) Raw() *mongo.Client

func (*Client) Set

func (cl *Client) Set(col string, doc Doc) (interface{}, error)

func (*Client) WithSession

func (cl *Client) WithSession(
	ctx context.Context,
	callback func(context.Context, func(string) *mongo.Collection) (interface{}, error),
) (interface{}, error)

type Database

type Database struct {
	sync.RWMutex
	*logging.Logging
	// contains filtered or unexported fields
}

func NewDatabase

func NewDatabase(client *Client, encs *encoder.Encoders, enc encoder.Encoder) (*Database, error)

func NewDatabaseFromURI

func NewDatabaseFromURI(uri string, encs *encoder.Encoders) (*Database, error)

func (*Database) Clean

func (st *Database) Clean() error

Clean will drop the existing collections. To keep safe the another collections by user, drop collections instead of drop database.

func (*Database) Client

func (st *Database) Client() *Client

func (*Database) Close

func (st *Database) Close() error

func (*Database) CreateIndex

func (st *Database) CreateIndex(col string, models []mongo.IndexModel) error

func (*Database) Encoder

func (st *Database) Encoder() encoder.Encoder

func (*Database) Encoders

func (st *Database) Encoders() *encoder.Encoders

func (*Database) Info

func (st *Database) Info(key string) ([]byte, bool, error)

func (*Database) Initialize

func (st *Database) Initialize() error

func (*Database) New

func (st *Database) New() (*Database, error)

func (*Database) Readonly

func (st *Database) Readonly() (*Database, error)

func (*Database) SetEncoder

func (st *Database) SetEncoder(enc encoder.Encoder)

func (*Database) SetEncoders

func (st *Database) SetEncoders(encs *encoder.Encoders)

func (*Database) SetInfo

func (st *Database) SetInfo(key string, b []byte) error

type Doc

type Doc interface {
	ID() interface{}
}

type InfoDoc

type InfoDoc struct {
	BaseDoc
	// contains filtered or unexported fields
}

func NewInfoDoc

func NewInfoDoc(key string, v []byte, enc encoder.Encoder) (InfoDoc, error)

func (InfoDoc) MarshalBSON

func (do InfoDoc) MarshalBSON() ([]byte, error)

type OperationItemInfo

type OperationItemInfo struct {
	TotalOperations  uint `bson:"total_operations" json:"total_operations"`
	NoItemOperations uint `bson:"no_item_operations" json:"no_item_operations"`
	ItemOperations   uint `bson:"item_operations" json:"item_operations"`
	Items            uint `bson:"items" json:"items"`
}

func LoadManifestDataFromDoc

func LoadManifestDataFromDoc(b []byte, encs *encoder.Encoders) (
	bson.Raw, interface{}, *OperationItemInfo,
	string, string, uint64, error,
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL