parent
e681af6dea
commit
c5fab32e49
@ -1,43 +0,0 @@ |
||||
package mongox |
||||
|
||||
import ( |
||||
"go.mongodb.org/mongo-driver/bson/primitive" |
||||
) |
||||
|
||||
// Saver is an interface for documents that can be saved
|
||||
type Saver interface { |
||||
Save(db *Database) error |
||||
} |
||||
|
||||
// Deleter is an interface for documents that can be deleted
|
||||
type Deleter interface { |
||||
Delete(db *Database) error |
||||
} |
||||
|
||||
// Loader is an interface for documents that can be loaded
|
||||
type Loader interface { |
||||
Load(db *Database, filters ...interface{}) error |
||||
} |
||||
|
||||
// Resetter is an interface for documenta that can be resetted
|
||||
type Resetter interface { |
||||
Reset() |
||||
} |
||||
|
||||
// BaseObjectID is an interface for documents that have objectId type for the _id field
|
||||
type BaseObjectID interface { |
||||
GetID() primitive.ObjectID |
||||
SetID(id primitive.ObjectID) |
||||
} |
||||
|
||||
// BaseString is an interface for documents that have string type for the _id field
|
||||
type BaseString interface { |
||||
GetID() string |
||||
SetID(id string) |
||||
} |
||||
|
||||
// BaseObject is an interface for documents that have object type for the _id field
|
||||
type BaseObject interface { |
||||
GetID() primitive.D |
||||
SetID(id primitive.D) |
||||
} |
@ -0,0 +1,99 @@ |
||||
package mongox |
||||
|
||||
import ( |
||||
"context" |
||||
|
||||
"go.mongodb.org/mongo-driver/bson/primitive" |
||||
"go.mongodb.org/mongo-driver/mongo" |
||||
"go.mongodb.org/mongo-driver/mongo/options" |
||||
"go.mongodb.org/mongo-driver/mongo/readpref" |
||||
) |
||||
|
||||
// Database is the mongox database interface
|
||||
type Database interface { |
||||
Client() MongoClient |
||||
Context() context.Context |
||||
Name() string |
||||
New(ctx context.Context) Database |
||||
GetCollectionOf(document interface{}) MongoCollection |
||||
} |
||||
|
||||
// MongoClient is the mongo client interface
|
||||
type MongoClient interface { |
||||
Connect(ctx context.Context) error |
||||
Disconnect(ctx context.Context) error |
||||
Ping(ctx context.Context, rp *readpref.ReadPref) error |
||||
StartSession(opts ...*options.SessionOptions) (mongo.Session, error) |
||||
Database(name string, opts ...*options.DatabaseOptions) *mongo.Database |
||||
ListDatabases(ctx context.Context, filter interface{}, opts ...*options.ListDatabasesOptions) (mongo.ListDatabasesResult, error) |
||||
ListDatabaseNames(ctx context.Context, filter interface{}, opts ...*options.ListDatabasesOptions) ([]string, error) |
||||
UseSession(ctx context.Context, fn func(mongo.SessionContext) error) error |
||||
UseSessionWithOptions(ctx context.Context, opts *options.SessionOptions, fn func(mongo.SessionContext) error) error |
||||
Watch(ctx context.Context, pipeline interface{}, opts ...*options.ChangeStreamOptions) (*mongo.ChangeStream, error) |
||||
NumberSessionsInProgress() int |
||||
} |
||||
|
||||
// MongoCollection is the mongo collection interface
|
||||
type MongoCollection interface { |
||||
Clone(opts ...*options.CollectionOptions) (*mongo.Collection, error) |
||||
Name() string |
||||
Database() *mongo.Database |
||||
BulkWrite(ctx context.Context, models []mongo.WriteModel, opts ...*options.BulkWriteOptions) (*mongo.BulkWriteResult, error) |
||||
InsertOne(ctx context.Context, document interface{}, opts ...*options.InsertOneOptions) (*mongo.InsertOneResult, error) |
||||
InsertMany(ctx context.Context, documents []interface{}, opts ...*options.InsertManyOptions) (*mongo.InsertManyResult, error) |
||||
DeleteOne(ctx context.Context, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error) |
||||
DeleteMany(ctx context.Context, filter interface{}, opts ...*options.DeleteOptions) (*mongo.DeleteResult, error) |
||||
UpdateOne(ctx context.Context, filter interface{}, update interface{}, opts ...*options.UpdateOptions) (*mongo.UpdateResult, error) |
||||
UpdateMany(ctx context.Context, filter interface{}, update interface{}, opts ...*options.UpdateOptions) (*mongo.UpdateResult, error) |
||||
ReplaceOne(ctx context.Context, filter interface{}, replacement interface{}, opts ...*options.ReplaceOptions) (*mongo.UpdateResult, error) |
||||
Aggregate(ctx context.Context, pipeline interface{}, opts ...*options.AggregateOptions) (*mongo.Cursor, error) |
||||
CountDocuments(ctx context.Context, filter interface{}, opts ...*options.CountOptions) (int64, error) |
||||
EstimatedDocumentCount(ctx context.Context, opts ...*options.EstimatedDocumentCountOptions) (int64, error) |
||||
Distinct(ctx context.Context, fieldName string, filter interface{}, opts ...*options.DistinctOptions) ([]interface{}, error) |
||||
Find(ctx context.Context, filter interface{}, opts ...*options.FindOptions) (*mongo.Cursor, error) |
||||
FindOne(ctx context.Context, filter interface{}, opts ...*options.FindOneOptions) *mongo.SingleResult |
||||
FindOneAndDelete(ctx context.Context, filter interface{}, opts ...*options.FindOneAndDeleteOptions) *mongo.SingleResult |
||||
FindOneAndReplace(ctx context.Context, filter interface{}, replacement interface{}, opts ...*options.FindOneAndReplaceOptions) *mongo.SingleResult |
||||
FindOneAndUpdate(ctx context.Context, filter interface{}, update interface{}, opts ...*options.FindOneAndUpdateOptions) *mongo.SingleResult |
||||
Watch(ctx context.Context, pipeline interface{}, opts ...*options.ChangeStreamOptions) (*mongo.ChangeStream, error) |
||||
Indexes() mongo.IndexView |
||||
Drop(ctx context.Context) error |
||||
} |
||||
|
||||
// Saver is an interface for documents that can be saved
|
||||
type Saver interface { |
||||
Save(db Database) error |
||||
} |
||||
|
||||
// Deleter is an interface for documents that can be deleted
|
||||
type Deleter interface { |
||||
Delete(db Database) error |
||||
} |
||||
|
||||
// Loader is an interface for documents that can be loaded
|
||||
type Loader interface { |
||||
Load(db Database, filters ...interface{}) error |
||||
} |
||||
|
||||
// Resetter is an interface for documenta that can be resetted
|
||||
type Resetter interface { |
||||
Reset() |
||||
} |
||||
|
||||
// BaseObjectID is an interface for documents that have objectId type for the _id field
|
||||
type BaseObjectID interface { |
||||
GetID() primitive.ObjectID |
||||
SetID(id primitive.ObjectID) |
||||
} |
||||
|
||||
// BaseString is an interface for documents that have string type for the _id field
|
||||
type BaseString interface { |
||||
GetID() string |
||||
SetID(id string) |
||||
} |
||||
|
||||
// BaseObject is an interface for documents that have object type for the _id field
|
||||
type BaseObject interface { |
||||
GetID() primitive.D |
||||
SetID(id primitive.D) |
||||
} |
Loading…
Reference in new issue