Documentation
¶
Overview ¶
Package r3mongo is an r3.CRUD[T, ID] driver backed by the official MongoDB Go driver v2 (go.mongodb.org/mongo-driver/v2). Filters/sorts/pagination go through the r3 BSON dialect; it supports field projection, soft-delete (via r3:"soft_delete", plus Restore/HardDelete), and has-many/belongs-to preloads run as separate queries.
Map fields with `bson` (or `r3`) tags; the PK defaults to `_id`, overridable with `r3:"pk"` or `bson:"_id"`.
Example:
type User struct {
ID primitive.ObjectID `bson:"_id,omitempty" r3:"pk"`
Name string `bson:"name"`
Age int `bson:"age"`
}
client, _ := mongo.Connect(options.Client().ApplyURI("mongodb://localhost:27017"))
db := client.Database("mydb")
userRepo := r3mongo.NewMongoCRUD[User, primitive.ObjectID](db.Collection("users"))
// Or let the collection name be derived from the struct name:
userRepo := r3mongo.NewMongoCRUDFromDB[User, primitive.ObjectID](db)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewMongoQuerier ¶
func NewMongoQuerier[T any, ID comparable](coll *mongo.Collection, opts ...r3.Option) r3.Querier[T, ID]
NewMongoQuerier builds a read-only repository from a collection (r3.Querier enforces it).
func NewMongoQuerierFromDB ¶
func NewMongoQuerierFromDB[T any, ID comparable](db *mongo.Database, opts ...r3.Option) r3.Querier[T, ID]
NewMongoQuerierFromDB builds a read-only repository from a database, deriving the collection name from T (r3.Querier enforces read-only).
Types ¶
type MongoCRUD ¶
type MongoCRUD[T any, ID comparable] struct { *enginemongo.BaseCRUD[T, ID] }
MongoCRUD is a MongoDB repository; enginemongo.BaseCRUD supplies the r3.CRUD impl.
func NewMongoCRUD ¶
func NewMongoCRUD[T any, ID comparable](coll *mongo.Collection, opts ...r3.Option) *MongoCRUD[T, ID]
NewMongoCRUD builds a repository from a collection. Map fields with `bson` tags.
func NewMongoCRUDFromDB ¶
func NewMongoCRUDFromDB[T any, ID comparable](db *mongo.Database, opts ...r3.Option) *MongoCRUD[T, ID]
NewMongoCRUDFromDB builds a repository from a database, deriving the collection name from T (e.g. User -> "users", CityTranslation -> "city_translations").
func (*MongoCRUD[T, ID]) Collection ¶
func (r *MongoCRUD[T, ID]) Collection() *mongo.Collection
Collection returns the underlying *mongo.Collection for advanced usage.
func (*MongoCRUD[T, ID]) Raw ¶
func (r *MongoCRUD[T, ID]) Raw() *enginemongo.BaseRaw[T, ID]
Raw returns the BaseRaw escape hatch for custom MongoDB operations.
type MongoRaw
deprecated
type MongoRaw[T any, ID any] struct { *enginemongo.BaseRaw[T, ID] }
MongoRaw wraps enginemongo.BaseRaw.
Deprecated: use enginemongo.BaseRaw directly via MongoCRUD.Raw().
func NewMongoRaw ¶
func NewMongoRaw[T any, ID comparable](coll *mongo.Collection) *MongoRaw[T, ID]
NewMongoRaw creates a new MongoRaw instance.