Documentation ¶
Index ¶
- Variables
- func AbortTransaction(ctx context.Context, cmd command.AbortTransaction, topo *topology.Topology, ...) (result.TransactionResult, error)
- func BulkWrite(ctx context.Context, ns command.Namespace, models []WriteModel, ...) (result.BulkWrite, error)
- func CommitTransaction(ctx context.Context, cmd command.CommitTransaction, topo *topology.Topology, ...) (result.TransactionResult, error)
- func Count(ctx context.Context, cmd command.Count, topo *topology.Topology, ...) (int64, error)
- func CountDocuments(ctx context.Context, cmd command.CountDocuments, topo *topology.Topology, ...) (int64, error)
- func CreateIndexes(ctx context.Context, cmd command.CreateIndexes, topo *topology.Topology, ...) (result.CreateIndexes, error)
- func Delete(ctx context.Context, cmd command.Delete, topo *topology.Topology, ...) (result.Delete, error)
- func Distinct(ctx context.Context, cmd command.Distinct, topo *topology.Topology, ...) (result.Distinct, error)
- func DropCollection(ctx context.Context, cmd command.DropCollection, topo *topology.Topology, ...) (bson.Raw, error)
- func DropDatabase(ctx context.Context, cmd command.DropDatabase, topo *topology.Topology, ...) (bson.Raw, error)
- func DropIndexes(ctx context.Context, cmd command.DropIndexes, topo *topology.Topology, ...) (bson.Raw, error)
- func EndSessions(ctx context.Context, cmd command.EndSessions, topo *topology.Topology, ...) ([]result.EndSessions, []error)
- func FindOneAndDelete(ctx context.Context, cmd command.FindOneAndDelete, topo *topology.Topology, ...) (result.FindAndModify, error)
- func FindOneAndReplace(ctx context.Context, cmd command.FindOneAndReplace, topo *topology.Topology, ...) (result.FindAndModify, error)
- func FindOneAndUpdate(ctx context.Context, cmd command.FindOneAndUpdate, topo *topology.Topology, ...) (result.FindAndModify, error)
- func Insert(ctx context.Context, cmd command.Insert, topo *topology.Topology, ...) (result.Insert, error)
- func KillCursors(ctx context.Context, ns command.Namespace, server driver.Server, ...) (result.KillCursors, error)
- func ListDatabases(ctx context.Context, cmd command.ListDatabases, topo *topology.Topology, ...) (result.ListDatabases, error)
- func Read(ctx context.Context, cmd command.Read, topo *topology.Topology, ...) (bson.Raw, error)
- func Update(ctx context.Context, cmd command.Update, topo *topology.Topology, ...) (result.Update, error)
- func Write(ctx context.Context, cmd command.Write, topo *topology.Topology, ...) (bson.Raw, error)
- type BatchCursor
- func Aggregate(ctx context.Context, cmd command.Aggregate, topo *topology.Topology, ...) (*BatchCursor, error)
- func Find(ctx context.Context, cmd command.Find, topo *topology.Topology, ...) (*BatchCursor, error)
- func ListIndexes(ctx context.Context, cmd command.ListIndexes, topo *topology.Topology, ...) (*BatchCursor, error)
- func NewBatchCursor(result bsoncore.Document, clientSession *session.Client, ...) (*BatchCursor, error)
- func NewEmptyBatchCursor() *BatchCursor
- func NewLegacyBatchCursor(ns command.Namespace, cursorID int64, ds *bsoncore.DocumentSequence, ...) (*BatchCursor, error)
- func ReadCursor(ctx context.Context, cmd command.Read, topo *topology.Topology, ...) (*BatchCursor, error)
- func (bc *BatchCursor) Batch() *bsoncore.DocumentSequence
- func (bc *BatchCursor) Close(ctx context.Context) error
- func (bc *BatchCursor) Err() error
- func (bc *BatchCursor) ID() int64
- func (bc *BatchCursor) Next(ctx context.Context) bool
- func (bc *BatchCursor) PostBatchResumeToken() bsoncore.Document
- func (bc *BatchCursor) Server() driver.Server
- type BulkWriteError
- type BulkWriteException
- type DeleteManyModel
- type DeleteOneModel
- type InsertOneModel
- type ListCollectionsBatchCursor
- func ListCollections(ctx context.Context, cmd command.ListCollections, topo *topology.Topology, ...) (*ListCollectionsBatchCursor, error)
- func NewLegacyListCollectionsBatchCursor(bc *BatchCursor) (*ListCollectionsBatchCursor, error)
- func NewListCollectionsBatchCursor(bc *BatchCursor) (*ListCollectionsBatchCursor, error)
- func (lcbc *ListCollectionsBatchCursor) Batch() *bsoncore.DocumentSequence
- func (lcbc *ListCollectionsBatchCursor) Close(ctx context.Context) error
- func (lcbc *ListCollectionsBatchCursor) Err() error
- func (lcbc *ListCollectionsBatchCursor) ID() int64
- func (lcbc *ListCollectionsBatchCursor) Next(ctx context.Context) bool
- func (lcbc *ListCollectionsBatchCursor) Server() driver.Server
- type ReplaceOneModel
- type UpdateManyModel
- type UpdateModel
- type UpdateOneModel
- type WriteModel
Constants ¶
This section is empty.
Variables ¶
var ErrArrayFilters = errors.New("array filters cannot be set for server versions < 3.6")
ErrArrayFilters is caused if array filters are given for an invalid server version.
var ErrCollation = errors.New("collation cannot be set for server versions < 3.4")
ErrCollation is caused if a collation is given for an invalid server version.
var ErrFilterType = errors.New("filter must be a string")
ErrFilterType is thrown when a non-string filter is specified.
Functions ¶
func AbortTransaction ¶
func AbortTransaction( ctx context.Context, cmd command.AbortTransaction, topo *topology.Topology, selector description.ServerSelector, ) (result.TransactionResult, error)
AbortTransaction handles the full cycle dispatch and execution of abortting a transaction against the provided topology.
func BulkWrite ¶
func BulkWrite( ctx context.Context, ns command.Namespace, models []WriteModel, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, retryWrite bool, sess *session.Client, writeConcern *writeconcern.WriteConcern, clock *session.ClusterClock, registry *bsoncodec.Registry, opts ...*options.BulkWriteOptions, ) (result.BulkWrite, error)
BulkWrite handles the full dispatch cycle for a bulk write operation.
func CommitTransaction ¶
func CommitTransaction( ctx context.Context, cmd command.CommitTransaction, topo *topology.Topology, selector description.ServerSelector, ) (result.TransactionResult, error)
CommitTransaction handles the full cycle dispatch and execution of committing a transaction against the provided topology.
func Count ¶
func Count( ctx context.Context, cmd command.Count, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, registry *bsoncodec.Registry, opts ...*options.CountOptions, ) (int64, error)
Count handles the full cycle dispatch and execution of a count command against the provided topology.
func CountDocuments ¶
func CountDocuments( ctx context.Context, cmd command.CountDocuments, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, registry *bsoncodec.Registry, opts ...*options.CountOptions, ) (int64, error)
CountDocuments handles the full cycle dispatch and execution of a countDocuments command against the provided topology.
func CreateIndexes ¶
func CreateIndexes( ctx context.Context, cmd command.CreateIndexes, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, opts ...*options.CreateIndexesOptions, ) (result.CreateIndexes, error)
CreateIndexes handles the full cycle dispatch and execution of a createIndexes command against the provided topology.
func Delete ¶
func Delete( ctx context.Context, cmd command.Delete, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, retryWrite bool, opts ...*options.DeleteOptions, ) (result.Delete, error)
Delete handles the full cycle dispatch and execution of a delete command against the provided topology.
func Distinct ¶
func Distinct( ctx context.Context, cmd command.Distinct, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, opts ...*options.DistinctOptions, ) (result.Distinct, error)
Distinct handles the full cycle dispatch and execution of a distinct command against the provided topology.
func DropCollection ¶
func DropCollection( ctx context.Context, cmd command.DropCollection, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, ) (bson.Raw, error)
DropCollection handles the full cycle dispatch and execution of a dropCollection command against the provided topology.
func DropDatabase ¶
func DropDatabase( ctx context.Context, cmd command.DropDatabase, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, ) (bson.Raw, error)
DropDatabase handles the full cycle dispatch and execution of a dropDatabase command against the provided topology.
func DropIndexes ¶
func DropIndexes( ctx context.Context, cmd command.DropIndexes, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, opts ...*options.DropIndexesOptions, ) (bson.Raw, error)
DropIndexes handles the full cycle dispatch and execution of a dropIndexes command against the provided topology.
func EndSessions ¶
func EndSessions( ctx context.Context, cmd command.EndSessions, topo *topology.Topology, selector description.ServerSelector, ) ([]result.EndSessions, []error)
EndSessions handles the full cycle dispatch and execution of an endSessions command against the provided topology.
func FindOneAndDelete ¶
func FindOneAndDelete( ctx context.Context, cmd command.FindOneAndDelete, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, retryWrite bool, registry *bsoncodec.Registry, opts ...*options.FindOneAndDeleteOptions, ) (result.FindAndModify, error)
FindOneAndDelete handles the full cycle dispatch and execution of a FindOneAndDelete command against the provided topology.
func FindOneAndReplace ¶
func FindOneAndReplace( ctx context.Context, cmd command.FindOneAndReplace, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, retryWrite bool, registry *bsoncodec.Registry, opts ...*options.FindOneAndReplaceOptions, ) (result.FindAndModify, error)
FindOneAndReplace handles the full cycle dispatch and execution of a FindOneAndReplace command against the provided topology.
func FindOneAndUpdate ¶
func FindOneAndUpdate( ctx context.Context, cmd command.FindOneAndUpdate, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, retryWrite bool, registry *bsoncodec.Registry, opts ...*options.FindOneAndUpdateOptions, ) (result.FindAndModify, error)
FindOneAndUpdate handles the full cycle dispatch and execution of a FindOneAndUpdate command against the provided topology.
func Insert ¶
func Insert( ctx context.Context, cmd command.Insert, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, retryWrite bool, opts ...*options.InsertManyOptions, ) (result.Insert, error)
Insert handles the full cycle dispatch and execution of an insert command against the provided topology.
func KillCursors ¶
func KillCursors( ctx context.Context, ns command.Namespace, server driver.Server, cursorID int64, ) (result.KillCursors, error)
KillCursors handles the full cycle dispatch and execution of an aggregate command against the provided topology.
func ListDatabases ¶
func ListDatabases( ctx context.Context, cmd command.ListDatabases, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, opts ...*options.ListDatabasesOptions, ) (result.ListDatabases, error)
ListDatabases handles the full cycle dispatch and execution of a listDatabases command against the provided topology.
func Read ¶
func Read( ctx context.Context, cmd command.Read, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, ) (bson.Raw, error)
Read handles the full cycle dispatch and execution of a read command against the provided topology.
func Update ¶
func Update( ctx context.Context, cmd command.Update, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, retryWrite bool, opts ...*options.UpdateOptions, ) (result.Update, error)
Update handles the full cycle dispatch and execution of an update command against the provided topology.
Types ¶
type BatchCursor ¶
type BatchCursor struct {
// contains filtered or unexported fields
}
BatchCursor is a batch implementation of a cursor. It returns documents in entire batches instead of one at a time. An individual document cursor can be built on top of this batch cursor.
func Aggregate ¶
func Aggregate( ctx context.Context, cmd command.Aggregate, topo *topology.Topology, readSelector, writeSelector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, registry *bsoncodec.Registry, opts ...*options.AggregateOptions, ) (*BatchCursor, error)
Aggregate handles the full cycle dispatch and execution of an aggregate command against the provided topology.
func Find ¶
func Find( ctx context.Context, cmd command.Find, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, registry *bsoncodec.Registry, opts ...*options.FindOptions, ) (*BatchCursor, error)
Find handles the full cycle dispatch and execution of a find command against the provided topology.
func ListIndexes ¶
func ListIndexes( ctx context.Context, cmd command.ListIndexes, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, opts ...*options.ListIndexesOptions, ) (*BatchCursor, error)
ListIndexes handles the full cycle dispatch and execution of a listIndexes command against the provided topology.
func NewBatchCursor ¶
func NewBatchCursor(result bsoncore.Document, clientSession *session.Client, clock *session.ClusterClock, server *topology.Server, opts ...bsonx.Elem) (*BatchCursor, error)
NewBatchCursor creates a new BatchCursor from the provided parameters.
func NewEmptyBatchCursor ¶
func NewEmptyBatchCursor() *BatchCursor
NewEmptyBatchCursor returns a batch cursor that is empty.
func NewLegacyBatchCursor ¶
func NewLegacyBatchCursor(ns command.Namespace, cursorID int64, ds *bsoncore.DocumentSequence, limit int32, batchSize int32, server *topology.Server) (*BatchCursor, error)
NewLegacyBatchCursor creates a new BatchCursor for server versions 3.0 and below from the provided parameters.
TODO(GODRIVER-617): The batch parameter here should be []bsoncore.Document. Change it to this once we have the new wiremessage package that uses bsoncore instead of bson.
func ReadCursor ¶
func ReadCursor( ctx context.Context, cmd command.Read, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, cursorOpts ...bsonx.Elem, ) (*BatchCursor, error)
ReadCursor handles the full dispatch cycle and execution of a read command against the provided topology and returns a Cursor over the resulting BSON reader.
func (*BatchCursor) Batch ¶
func (bc *BatchCursor) Batch() *bsoncore.DocumentSequence
Batch will return a DocumentSequence for the current batch of documents. The returned DocumentSequence is only valid until the next call to Next or Close.
func (*BatchCursor) Close ¶
func (bc *BatchCursor) Close(ctx context.Context) error
Close closes this batch cursor.
func (*BatchCursor) Err ¶
func (bc *BatchCursor) Err() error
Err returns the latest error encountered.
func (*BatchCursor) ID ¶
func (bc *BatchCursor) ID() int64
ID returns the cursor ID for this batch cursor.
func (*BatchCursor) Next ¶
func (bc *BatchCursor) Next(ctx context.Context) bool
Next indicates if there is another batch available. Returning false does not necessarily indicate that the cursor is closed. This method will return false when an empty batch is returned.
If Next returns true, there is a valid batch of documents available. If Next returns false, there is not a valid batch of documents available.
func (*BatchCursor) PostBatchResumeToken ¶
func (bc *BatchCursor) PostBatchResumeToken() bsoncore.Document
PostBatchResumeToken returns the latest seen post batch resume token.
func (*BatchCursor) Server ¶
func (bc *BatchCursor) Server() driver.Server
Server returns a pointer to the cursor's server.
type BulkWriteError ¶
type BulkWriteError struct { result.WriteError Model WriteModel }
BulkWriteError is an error from one operation in a bulk write.
type BulkWriteException ¶
type BulkWriteException struct { WriteConcernError *result.WriteConcernError WriteErrors []BulkWriteError }
BulkWriteException is a collection of errors returned by a bulk write operation.
func (BulkWriteException) Error ¶
func (BulkWriteException) Error() string
type DeleteManyModel ¶
DeleteManyModel is the write model for deleteMany operations.
type DeleteOneModel ¶
DeleteOneModel is the write model for delete operations.
type InsertOneModel ¶
type InsertOneModel struct {
Document interface{}
}
InsertOneModel is the write model for insert operations.
type ListCollectionsBatchCursor ¶
type ListCollectionsBatchCursor struct {
// contains filtered or unexported fields
}
ListCollectionsBatchCursor is a special batch cursor returned from ListCollections that properly handles current and legacy ListCollections operations.
func ListCollections ¶
func ListCollections( ctx context.Context, cmd command.ListCollections, topo *topology.Topology, selector description.ServerSelector, clientID uuid.UUID, pool *session.Pool, opts ...*options.ListCollectionsOptions, ) (*ListCollectionsBatchCursor, error)
ListCollections handles the full cycle dispatch and execution of a listCollections command against the provided topology.
func NewLegacyListCollectionsBatchCursor ¶
func NewLegacyListCollectionsBatchCursor(bc *BatchCursor) (*ListCollectionsBatchCursor, error)
NewLegacyListCollectionsBatchCursor creates a new legacy ListCollectionsCursor.
func NewListCollectionsBatchCursor ¶
func NewListCollectionsBatchCursor(bc *BatchCursor) (*ListCollectionsBatchCursor, error)
NewListCollectionsBatchCursor creates a new non-legacy ListCollectionsCursor.
func (*ListCollectionsBatchCursor) Batch ¶
func (lcbc *ListCollectionsBatchCursor) Batch() *bsoncore.DocumentSequence
Batch will return a DocumentSequence for the current batch of documents. The returned DocumentSequence is only valid until the next call to Next or Close.
func (*ListCollectionsBatchCursor) Close ¶
func (lcbc *ListCollectionsBatchCursor) Close(ctx context.Context) error
Close closes this batch cursor.
func (*ListCollectionsBatchCursor) Err ¶
func (lcbc *ListCollectionsBatchCursor) Err() error
Err returns the latest error encountered.
func (*ListCollectionsBatchCursor) ID ¶
func (lcbc *ListCollectionsBatchCursor) ID() int64
ID returns the cursor ID for this batch cursor.
func (*ListCollectionsBatchCursor) Next ¶
func (lcbc *ListCollectionsBatchCursor) Next(ctx context.Context) bool
Next indicates if there is another batch available. Returning false does not necessarily indicate that the cursor is closed. This method will return false when an empty batch is returned.
If Next returns true, there is a valid batch of documents available. If Next returns false, there is not a valid batch of documents available.
func (*ListCollectionsBatchCursor) Server ¶
func (lcbc *ListCollectionsBatchCursor) Server() driver.Server
Server returns a pointer to the cursor's server.
type ReplaceOneModel ¶
type ReplaceOneModel struct { Filter interface{} Replacement interface{} UpdateModel }
ReplaceOneModel is the write model for replace operations.
type UpdateManyModel ¶
type UpdateManyModel struct { Filter interface{} Update interface{} // default is to not send a value. for servers < 3.6, error raised if value given. for unack writes using opcodes, // error raised if value given ArrayFilters options.ArrayFilters ArrayFiltersSet bool UpdateModel }
UpdateManyModel is the write model for updateMany operations.
type UpdateModel ¶
UpdateModel contains the fields that are shared between the ReplaceOneModel, UpdateOneModel, and UpdateManyModel types
type UpdateOneModel ¶
type UpdateOneModel struct { Filter interface{} Update interface{} // default is to not send a value. for servers < 3.6, error raised if value given. for unack writes using opcodes, // error raised if value given ArrayFilters options.ArrayFilters ArrayFiltersSet bool UpdateModel }
UpdateOneModel is the write model for update operations.
type WriteModel ¶
type WriteModel interface {
// contains filtered or unexported methods
}
WriteModel is the interface satisfied by all models for bulk writes.
Source Files ¶
- abort_transaction.go
- aggregate.go
- batch_cursor.go
- bulk_write.go
- commit_transaction.go
- count.go
- count_documents.go
- create_indexes.go
- delete.go
- delete_indexes.go
- dispatch.go
- distinct.go
- drop_collection.go
- drop_database.go
- end_sessions.go
- find.go
- find_one_and_delete.go
- find_one_and_replace.go
- find_one_and_update.go
- insert.go
- kill_cursors.go
- list_collections.go
- list_collections_batch_cursor.go
- list_databases.go
- list_indexes.go
- models.go
- read.go
- read_cursor.go
- update.go
- write.go