Best practice for multiple read concerns? Transactions and multiple changestreams with golang

Are you creating the change streams through Client.Watch, Database.Watch, or Collection.Watch? If it’s Database or Collection, you can make a database or collection object configured with secondary read preference:

secondary := readpref.Secondary()
dbOpts := options.Database().SetReadPreference(secondary)
db := client.Database("dbname", dbOpts)