loopbackio / loopbackio/loopback-next
Update the datasource/database read preference at the run time.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 5.1k
- Forks
- 1.1k
- Ø Merge
- 2 T. 21 Std.
- Gemergte PRs (30 T.)
- 27
Beschreibung
### Describe the bug
For architectural reasons, I need to update the readPreference for a given method, on a given repository at the fly.
Please note, this change should be done at real time, and impact only this function invocation. However, the readPreferrence at the application level/datasource level should remain intact to "primaryPreferred".
For example,
```Javascript
this.userRepo.find(filter, { readPreference: "secondary" }); // request is still going to primary MongoDB server!
this.userRepo.findById(filter, { readPreference: "primary" });
```
I've tried this, but upon checking mongodb logs, this does not seem to work. All the request are going to primary server.
MongoDB version: v4.2
### Logs
```shell
NA
```
### Additional information
NA
### Reproduction
https://github.com/shivambmgupta/loopback-next/tree/bug/read-preference-update
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem verlinkten Reproduktions-Branch und verfolge die Repository-Aufrufe mit find und findById unter Verwendung von readPreference-Optionen pro Aufruf gegen MongoDB 4.2. Überprüfe, dass eine Präferenz auf Methodenebene nur diesen Aufruf ändert, während die Einstellung der Anwendung und der Datenquelle primaryPreferred bleibt; bestätige die daraus resultierende Serverauswahl in den MongoDB-Logs.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- mongodb, typescript
- Bereich
- backend, database
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100