summaryrefslogtreecommitdiff
path: root/src/mongo/gotools/src/github.com/mongodb/mongo-tools/vendor/go.mongodb.org/mongo-driver/mongo/database.go
diff options
context:
space:
mode:
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.go16
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
}