summaryrefslogtreecommitdiff
path: root/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation/find_and_modify.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation/find_and_modify.go')
-rw-r--r--src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation/find_and_modify.go394
1 files changed, 0 insertions, 394 deletions
diff --git a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation/find_and_modify.go b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation/find_and_modify.go
deleted file mode 100644
index ba6d737a16e..00000000000
--- a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/x/mongo/driver/operation/find_and_modify.go
+++ /dev/null
@@ -1,394 +0,0 @@
-// Copyright (C) MongoDB, Inc. 2019-present.
-//
-// Licensed under the Apache License, Version 2.0 (the "License"); you may
-// not use this file except in compliance with the License. You may obtain
-// a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
-
-// Code generated by operationgen. DO NOT EDIT.
-
-package operation
-
-import (
- "context"
- "errors"
- "fmt"
-
- "go.mongodb.org/mongo-driver/bson"
- "go.mongodb.org/mongo-driver/event"
- "go.mongodb.org/mongo-driver/mongo/writeconcern"
- "go.mongodb.org/mongo-driver/x/bsonx/bsoncore"
- "go.mongodb.org/mongo-driver/x/mongo/driver"
- "go.mongodb.org/mongo-driver/x/mongo/driver/description"
- "go.mongodb.org/mongo-driver/x/mongo/driver/session"
-)
-
-// FindAndModify performs a findAndModify operation.
-type FindAndModify struct {
- arrayFilters bsoncore.Document
- bypassDocumentValidation *bool
- collation bsoncore.Document
- fields bsoncore.Document
- maxTimeMS *int64
- newDocument *bool
- query bsoncore.Document
- remove *bool
- sort bsoncore.Document
- update bsoncore.Value
- upsert *bool
- session *session.Client
- clock *session.ClusterClock
- collection string
- monitor *event.CommandMonitor
- database string
- deployment driver.Deployment
- selector description.ServerSelector
- writeConcern *writeconcern.WriteConcern
- retry *driver.RetryMode
-
- result FindAndModifyResult
-}
-
-type LastErrorObject struct {
- // True if an update modified an existing document
- UpdatedExisting bool
- // Object ID of the upserted document.
- Upserted interface{}
-}
-
-type FindAndModifyResult struct {
- // Either the old or modified document, depending on the value of the new parameter.
- Value bsoncore.Document
- // Contains information about updates and upserts.
- LastErrorObject LastErrorObject
-}
-
-func buildFindAndModifyResult(response bsoncore.Document, srvr driver.Server) (FindAndModifyResult, error) {
- elements, err := response.Elements()
- if err != nil {
- return FindAndModifyResult{}, err
- }
- famr := FindAndModifyResult{}
- for _, element := range elements {
- switch element.Key() {
-
- case "value":
- var ok bool
- famr.Value, ok = element.Value().DocumentOK()
- if !ok {
- err = fmt.Errorf("response field 'value' is type document, but received BSON type %s", element.Value().Type)
- }
- case "lastErrorObject":
- valDoc, ok := element.Value().DocumentOK()
- if !ok {
- err = fmt.Errorf("response field 'lastErrorObject' is type document, but received BSON type %s", element.Value().Type)
- break
- }
-
- var leo LastErrorObject
- if err = bson.Unmarshal(valDoc, &leo); err != nil {
- break
- }
- famr.LastErrorObject = leo
- }
- }
- return famr, nil
-}
-
-// NewFindAndModify constructs and returns a new FindAndModify.
-func NewFindAndModify(query bsoncore.Document) *FindAndModify {
- return &FindAndModify{
- query: query,
- }
-}
-
-// Result returns the result of executing this operation.
-func (fam *FindAndModify) Result() FindAndModifyResult { return fam.result }
-
-func (fam *FindAndModify) processResponse(response bsoncore.Document, srvr driver.Server, desc description.Server) error {
- var err error
-
- fam.result, err = buildFindAndModifyResult(response, srvr)
- return err
-
-}
-
-// Execute runs this operations and returns an error if the operaiton did not execute successfully.
-func (fam *FindAndModify) Execute(ctx context.Context) error {
- if fam.deployment == nil {
- return errors.New("the FindAndModify operation must have a Deployment set before Execute can be called")
- }
-
- return driver.Operation{
- CommandFn: fam.command,
- ProcessResponseFn: fam.processResponse,
-
- RetryMode: fam.retry,
- Type: driver.Write,
- Client: fam.session,
- Clock: fam.clock,
- CommandMonitor: fam.monitor,
- Database: fam.database,
- Deployment: fam.deployment,
- Selector: fam.selector,
- WriteConcern: fam.writeConcern,
- }.Execute(ctx, nil)
-
-}
-
-func (fam *FindAndModify) command(dst []byte, desc description.SelectedServer) ([]byte, error) {
- dst = bsoncore.AppendStringElement(dst, "findAndModify", fam.collection)
- if fam.arrayFilters != nil {
-
- if desc.WireVersion == nil || !desc.WireVersion.Includes(6) {
- return nil, errors.New("the 'arrayFilters' command parameter requires a minimum server wire version of 6")
- }
- dst = bsoncore.AppendArrayElement(dst, "arrayFilters", fam.arrayFilters)
- }
- if fam.bypassDocumentValidation != nil {
-
- dst = bsoncore.AppendBooleanElement(dst, "bypassDocumentValidation", *fam.bypassDocumentValidation)
- }
- if fam.collation != nil {
-
- if desc.WireVersion == nil || !desc.WireVersion.Includes(5) {
- return nil, errors.New("the 'collation' command parameter requires a minimum server wire version of 5")
- }
- dst = bsoncore.AppendDocumentElement(dst, "collation", fam.collation)
- }
- if fam.fields != nil {
-
- dst = bsoncore.AppendDocumentElement(dst, "fields", fam.fields)
- }
- if fam.maxTimeMS != nil {
-
- dst = bsoncore.AppendInt64Element(dst, "maxTimeMS", *fam.maxTimeMS)
- }
- if fam.newDocument != nil {
-
- dst = bsoncore.AppendBooleanElement(dst, "new", *fam.newDocument)
- }
- if fam.query != nil {
-
- dst = bsoncore.AppendDocumentElement(dst, "query", fam.query)
- }
- if fam.remove != nil {
-
- dst = bsoncore.AppendBooleanElement(dst, "remove", *fam.remove)
- }
- if fam.sort != nil {
-
- dst = bsoncore.AppendDocumentElement(dst, "sort", fam.sort)
- }
- if fam.update.Data != nil {
- dst = bsoncore.AppendValueElement(dst, "update", fam.update)
- }
- if fam.upsert != nil {
-
- dst = bsoncore.AppendBooleanElement(dst, "upsert", *fam.upsert)
- }
-
- return dst, nil
-}
-
-// ArrayFilters specifies an array of filter documents that determines which array elements to modify for an update operation on an array field.
-func (fam *FindAndModify) ArrayFilters(arrayFilters bsoncore.Document) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.arrayFilters = arrayFilters
- return fam
-}
-
-// BypassDocumentValidation specifies if document validation can be skipped when executing the operation.
-func (fam *FindAndModify) BypassDocumentValidation(bypassDocumentValidation bool) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.bypassDocumentValidation = &bypassDocumentValidation
- return fam
-}
-
-// Collation specifies a collation to be used.
-func (fam *FindAndModify) Collation(collation bsoncore.Document) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.collation = collation
- return fam
-}
-
-// Fields specifies a subset of fields to return.
-func (fam *FindAndModify) Fields(fields bsoncore.Document) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.fields = fields
- return fam
-}
-
-// MaxTimeMS specifies the maximum amount of time to allow the operation to run.
-func (fam *FindAndModify) MaxTimeMS(maxTimeMS int64) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.maxTimeMS = &maxTimeMS
- return fam
-}
-
-// NewDocument specifies whether to return the modified document or the original. Defaults to false (return original).
-func (fam *FindAndModify) NewDocument(newDocument bool) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.newDocument = &newDocument
- return fam
-}
-
-// Query specifies the selection criteria for the modification.
-func (fam *FindAndModify) Query(query bsoncore.Document) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.query = query
- return fam
-}
-
-// Remove specifies that the matched document should be removed. Defaults to false.
-func (fam *FindAndModify) Remove(remove bool) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.remove = &remove
- return fam
-}
-
-// Sort determines which document the operation modifies if the query matches multiple documents.The first document matched by the sort order will be modified.
-//
-func (fam *FindAndModify) Sort(sort bsoncore.Document) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.sort = sort
- return fam
-}
-
-// Update specifies the update document to perform on the matched document.
-func (fam *FindAndModify) Update(update bsoncore.Value) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.update = update
- return fam
-}
-
-// Upsert specifies whether or not to create a new document if no documents match the query when doing an update. Defaults to false.
-func (fam *FindAndModify) Upsert(upsert bool) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.upsert = &upsert
- return fam
-}
-
-// Session sets the session for this operation.
-func (fam *FindAndModify) Session(session *session.Client) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.session = session
- return fam
-}
-
-// ClusterClock sets the cluster clock for this operation.
-func (fam *FindAndModify) ClusterClock(clock *session.ClusterClock) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.clock = clock
- return fam
-}
-
-// Collection sets the collection that this command will run against.
-func (fam *FindAndModify) Collection(collection string) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.collection = collection
- return fam
-}
-
-// CommandMonitor sets the monitor to use for APM events.
-func (fam *FindAndModify) CommandMonitor(monitor *event.CommandMonitor) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.monitor = monitor
- return fam
-}
-
-// Database sets the database to run this operation against.
-func (fam *FindAndModify) Database(database string) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.database = database
- return fam
-}
-
-// Deployment sets the deployment to use for this operation.
-func (fam *FindAndModify) Deployment(deployment driver.Deployment) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.deployment = deployment
- return fam
-}
-
-// ServerSelector sets the selector used to retrieve a server.
-func (fam *FindAndModify) ServerSelector(selector description.ServerSelector) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.selector = selector
- return fam
-}
-
-// WriteConcern sets the write concern for this operation.
-func (fam *FindAndModify) WriteConcern(writeConcern *writeconcern.WriteConcern) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.writeConcern = writeConcern
- return fam
-}
-
-// Retry enables retryable writes for this operation. Retries are not handled automatically,
-// instead a boolean is returned from Execute and SelectAndExecute that indicates if the
-// operation can be retried. Retrying is handled by calling RetryExecute.
-func (fam *FindAndModify) Retry(retry driver.RetryMode) *FindAndModify {
- if fam == nil {
- fam = new(FindAndModify)
- }
-
- fam.retry = &retry
- return fam
-}