diff options
Diffstat (limited to 'src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/mongo/database.go')
-rw-r--r-- | src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/mongo/database.go | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/mongo/database.go b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/mongo/database.go index 46900ba5af1..9ee642e4798 100644 --- a/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/mongo/database.go +++ b/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/mongo/database.go @@ -58,13 +58,18 @@ func newDatabase(client *Client, name string, opts ...*options.DatabaseOptions) wc = dbOpt.WriteConcern } + reg := client.registry + if dbOpt.Registry != nil { + reg = dbOpt.Registry + } + db := &Database{ client: client, name: name, readPreference: rp, readConcern: rc, writeConcern: wc, - registry: client.registry, + registry: reg, } db.readSelector = description.CompositeSelector([]description.ServerSelector{ @@ -273,7 +278,11 @@ func (db *Database) ListCollections(ctx context.Context, filter interface{}, opt return nil, err } - selector := makePinnedSelector(sess, db.readSelector) + selector := description.CompositeSelector([]description.ServerSelector{ + description.ReadPrefSelector(readpref.Primary()), + description.LatencySelector(db.client.localThreshold), + }) + selector = makeReadPrefSelector(sess, selector, db.client.localThreshold) lco := options.MergeListCollectionsOptions(opts...) op := operation.NewListCollections(filterDoc). @@ -313,6 +322,8 @@ func (db *Database) ListCollectionNames(ctx context.Context, filter interface{}, return nil, err } + defer res.Close(ctx) + names := make([]string, 0) for res.Next(ctx) { next := &bsonx.Doc{} @@ -334,6 +345,7 @@ func (db *Database) ListCollectionNames(ctx context.Context, filter interface{}, names = append(names, elemName) } + res.Close(ctx) return names, nil } |