-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Unknown
-
None
-
Affects Version/s: None
-
Component/s: SDAM
Use Case
As an... auto-connect user
I want... the MongoClient to run my operation as soon as it's able and without running unnecessary steps
So that... the initial client start up experience is as efficient as possible
Ex. the following snippet only performs a nearest selection. Does not run ping for the auth (since the find covers it) does not a server selection for the client-level ReadPreference setting
const doc = await (await MongoClient.connect('mongodb://user:pass@localhost:27017')) .db('test') .collection('test') .findOne({}, { readPreference: 'nearest' });
User Experience
- What is the desired/expected outcome for the user once this ticket is implemented?
- If bug: What is the number of impacted customers? How severe is the impact? Is anyone blocked or broken?
Dependencies
- upstream and/or downstream requirements and timelines to bear in mind
Risks/Unknowns
- What could go wrong while implementing this change? (e.g., performance, inadvertent behavioral changes in adjacent functionality, existing tech debt, etc)
- Is there an opportunity for better cross-driver alignment or testing in this area?
- Is there an opportunity to improve existing documentation on this subject?
Acceptance Criteria
Implementation Requirements
- Move the server selection step into the __skipPingOnConnect condition so we don't perform a server selection when auto-connecting (since we will server select for the command)
Testing Requirements
- Check that server selection is not doubled for auto-connect
Documentation Requirements
- DOCSP ticket, API docs, etc
Follow Up Requirements
- additional tickets to file, required releases, etc
- if node behavior differs/will differ from other drivers, confirm with dbx devs what standard to aim for and what plan, if any, exists to reconcile the diverging behavior moving forward