Documentation ¶
Index ¶
- Variables
- func JSONToBSON(json []byte) (bson.M, error)
- func StructToBSON(data interface{}) (dataBSON []byte, err error)
- type Cursor
- type NMongo
- type Repository
- type RepositoryCollection
- func (collection *RepositoryCollection) Exists(ctx context.Context, filter interface{}) (ret bool, err error)
- func (collection *RepositoryCollection) Find(ctx context.Context, filter interface{}) (cursor *Cursor, err error)
- func (collection *RepositoryCollection) FindId(ctx context.Context, id string, data interface{}) error
- func (collection *RepositoryCollection) FindOne(ctx context.Context, filter interface{}, data interface{}) (err error)
- func (collection *RepositoryCollection) FindToStruct(ctx context.Context, filter interface{}, data interface{}) ([]interface{}, error)
- func (collection *RepositoryCollection) FindToStruct2(ctx context.Context, filter interface{}, data interface{}) ([]interface{}, error)
- func (collection *RepositoryCollection) InsertOne(ctx context.Context, data interface{}) (recId string, err error)
- func (collection *RepositoryCollection) UpdateMany(ctx context.Context, filter interface{}, data interface{}) (*mongo.UpdateResult, error)
- func (collection *RepositoryCollection) UpdateOne(ctx context.Context, filter interface{}, data interface{}) (*mongo.UpdateResult, error)
- type RepositoryCollections
Constants ¶
This section is empty.
Variables ¶
var ErrCannotConnectToMongoDb = errors.New("cannot connect to mongodb")
DB Mongo Errors
var ErrDBNameOrCollectionNotFound = errors.New("dbName or MongoCollectionName not defined")
var ErrRecordAlreadyExists = errors.New("record already exists")
Records errors
var ErrRecordCannotDecodeData = errors.New("cannot decode cursor data")
var ErrRecordCannotReadData = errors.New("cannot read data. Cursor error")
var ErrRecordInserting = errors.New("error inserting the record")
var ErrRecordNotFound = errors.New("data not found")
var ErrRecordSearching = errors.New("error searching for a record")
var ErrRecordUpdating = errors.New("error updating the record")
var ErrUnableToCreateCollection = errors.New("cannot create MongoCollection name")
Functions ¶
func StructToBSON ¶
Преобразование Struc в bson.M
Types ¶
type NMongo ¶
type NMongo struct { Repo *Repository // contains filtered or unexported fields }
Главный класс для Mongo
type Repository ¶
type Repository struct { Name string Collections RepositoryCollections // contains filtered or unexported fields }
Репозитарий для Mongo
type RepositoryCollection ¶
type RepositoryCollection struct { Name string // contains filtered or unexported fields }
Коллекция Mongo
func (*RepositoryCollection) Exists ¶
func (collection *RepositoryCollection) Exists(ctx context.Context, filter interface{}) (ret bool, err error)
Проверка существует ли запись по фильтру
func (*RepositoryCollection) Find ¶
func (collection *RepositoryCollection) Find(ctx context.Context, filter interface{}) (cursor *Cursor, err error)
Поиск записей по фильтру
Пример: collection := nmongo.Repo.Collections.Collection(ms.collectionNames.Transactions) cursor, err := collection.Find(ctx, filter) if err != nil { return } defer cursor.Close() filter := bson.M{"txnId": data.TxnId} record := &entity.Transaction{} for cursor.Next() { cursor.Decode(record) fmt.Println(record) }
func (*RepositoryCollection) FindId ¶
func (collection *RepositoryCollection) FindId(ctx context.Context, id string, data interface{}) error
Поиск записи по Id Пример: data = &<struct>{} err = Collections.Collection(<name>).FindId(recId, data) data - значение записи вернутся сюда
func (*RepositoryCollection) FindOne ¶
func (collection *RepositoryCollection) FindOne(ctx context.Context, filter interface{}, data interface{}) (err error)
Поиск одной записи по фильтру
func (*RepositoryCollection) FindToStruct ¶
func (collection *RepositoryCollection) FindToStruct(ctx context.Context, filter interface{}, data interface{}) ([]interface{}, error)
Выбор данных по фильтру и пребразование в структуру
Пример: filter := bson.M{} filter["txnId"] = <id> txnData := &entity.Transaction{} datas, err := FindToStruct(ctx, &filter, txnData) if len(datas) > 0 { txnData = datas[0].(*entity.Transaction) }
func (*RepositoryCollection) FindToStruct2 ¶
func (collection *RepositoryCollection) FindToStruct2(ctx context.Context, filter interface{}, data interface{}) ([]interface{}, error)
Выбор данных по фильтру и пребразование в структуру
Пример: filter := bson.M{} filter["txnId"] = <id> txnData := &entity.Transaction{} datas, err := FindToStruct2(ctx, &filter, txnData) if len(datas) > 0 { txnData = datas[0].(*entity.Transaction) }
func (*RepositoryCollection) InsertOne ¶
func (collection *RepositoryCollection) InsertOne(ctx context.Context, data interface{}) (recId string, err error)
Вставка записи в коллекцию
func (*RepositoryCollection) UpdateMany ¶
func (collection *RepositoryCollection) UpdateMany(ctx context.Context, filter interface{}, data interface{}) (*mongo.UpdateResult, error)
Обновить несколько записей в коллекции по фильтру
Пример: Условие обновления (например, по полю "name") filter := bson.M{"name": "John Doe"} Новое значение поля "age" data := bson.M{"age": 30} updateResult, err := collection.UpdateMany(filter, data)
func (*RepositoryCollection) UpdateOne ¶
func (collection *RepositoryCollection) UpdateOne(ctx context.Context, filter interface{}, data interface{}) (*mongo.UpdateResult, error)
Обновить одну запись в коллекции по фильтру
Пример: Условие обновления (например, по полю "name") filter := bson.M{"name": "John Doe"} Новое значение поля "age" data := bson.M{"age": 30} updateResult, err := collection.UpdateOne(filter, data)
type RepositoryCollections ¶
type RepositoryCollections struct {
// contains filtered or unexported fields
}
Коллекции Mongo
func (*RepositoryCollections) AddByName ¶
func (objs *RepositoryCollections) AddByName(name string) *RepositoryCollection
Добавление коллекции в репозитарий по имени
func (*RepositoryCollections) Collection ¶
func (objs *RepositoryCollections) Collection(name string) *RepositoryCollection
Получение коллекции из репозитария по имени
func (*RepositoryCollections) CollectionByNum ¶
func (objs *RepositoryCollections) CollectionByNum(num int) *RepositoryCollection
Получение коллекции из репозитария по номеру
func (*RepositoryCollections) Number ¶
func (objs *RepositoryCollections) Number() int
Колличество коллекций