db interface
This commit is contained in:
65
dbinterface.go
Normal file
65
dbinterface.go
Normal file
@@ -0,0 +1,65 @@
|
||||
package mgoapi
|
||||
|
||||
import (
|
||||
"gitbase.de/gopackage/mgocrud/v2"
|
||||
"gopkg.in/mgo.v2"
|
||||
"gopkg.in/mgo.v2/bson"
|
||||
)
|
||||
|
||||
type Session interface {
|
||||
Close()
|
||||
Copy() Session
|
||||
DB(name string) Database
|
||||
}
|
||||
|
||||
type Database interface {
|
||||
Session() Session
|
||||
C(name string) Collection
|
||||
Name() string
|
||||
EnsureIndex(m mgocrud.ModelInterface) error
|
||||
ValidateObject(m mgocrud.ModelInterface, changes bson.M) error
|
||||
ReadDocument(m mgocrud.ModelInterface, selector bson.M) error
|
||||
CreateDocument(m mgocrud.ModelInterface) error
|
||||
ReadCollection(results interface{}, filter bson.M, selector bson.M, offset int, limit int, sort []string, pipelineModifier mgocrud.PipelineModifierFunction) error
|
||||
ReadCollectionCount(m mgocrud.ModelInterface, filter bson.M) (count int, err error)
|
||||
UpdateDocument(m mgocrud.ModelInterface, changes bson.M) error
|
||||
UpsertDocument(m mgocrud.ModelInterface, changes bson.M) error
|
||||
DeleteDocument(m mgocrud.ModelInterface) error
|
||||
DeleteDocuments(m mgocrud.ModelInterface, filter bson.M) (removed int, err error)
|
||||
}
|
||||
|
||||
type Collection interface {
|
||||
Insert(docs ...interface{}) error
|
||||
UpdateId(id interface{}, update interface{}) error
|
||||
RemoveId(id interface{}) error
|
||||
Upsert(selector interface{}, update interface{}) (ChangeInfo, error)
|
||||
RemoveAll(filter interface{}) (ChangeInfo, error)
|
||||
FindId(id interface{}) Query
|
||||
Find(query interface{}) Query
|
||||
EnsureIndex(index Index) error
|
||||
Pipe(pipeline interface{}) Pipe
|
||||
}
|
||||
|
||||
type ChangeInfo interface {
|
||||
Matched() int
|
||||
Removed() int
|
||||
Updated() int
|
||||
}
|
||||
|
||||
type Query interface {
|
||||
Select(selector interface{}) Query
|
||||
One(result interface{}) error
|
||||
Sort(fields ...string) Query
|
||||
Skip(n int) Query
|
||||
Limit(n int) Query
|
||||
All(result interface{}) error
|
||||
Count() (int, error)
|
||||
}
|
||||
|
||||
type Index interface {
|
||||
NewMgoIndex(index mgo.Index) Index
|
||||
}
|
||||
|
||||
type Pipe interface {
|
||||
All(result interface{}) error
|
||||
}
|
||||
Reference in New Issue
Block a user