2017-03-09 3 views
0

Aus der Dokumentation auf Connection String URI Syntax in Bezug auf Replikatsätzen haben wir:MongoDB-Replikat-Set - copyDatabase mit readPreference?

Die folgende Verbindung zu einem Replikat mit drei Mitgliedern festgelegt und verteilt liest die Sekundär:

mongodb://example1.com,example2.com/?replicaSet=test&readPreference=secondary 

Das ist genau was ich tun muss, jedoch versuche ich die korrekte Syntax zu bestimmen (und wenn readPreference sogar unterstützt wird) für den copyDatabase Befehl. Seine Host-URI-Syntax sieht wie folgt aus:

test/example1.com,example2.com 

... zum Beispiel ...

db.copyDatabase('myDb', 'myDb', 'test/example1.com,example2.com') 

Kann ich ?readPreference=secondary am Ende, dass heften und sie haben wie erwartet? Ich habe keine bequeme Möglichkeit, dies selbst in meiner Umgebung zu testen, oder ich würde es tun. Ich hoffe, dass jemand hier von seinem Kopf weiß.

Antwort

1

Eine Lesevoreinstellung ist ein Client/Treiber-seitiges Konzept. Der Server kennt die Leseeinstellungen einer Anfrage nicht, sodass Sie die Leseeinstellungen auf der Serverseite nicht überprüfen können. Sie können überprüfen, ob einige Abfragen an Secondaries gesendet werden, z. B. mongostat, oder Sie können db.serverStatus().opcounters auf jedem DB-Server verwenden, vergleichen Sie die Abfrageanzahl vor dem Abfragen und nach dem Abfragen. Für die vollständige Liste der Db-Server-Status, verwenden Sie db.serverStatus()

+0

Das macht vollkommen Sinn, ich hatte nicht berücksichtigt, dass es Client-Seite verwaltet wurde. Docs sind "ein bisschen" dünn. :) Danke vielmals – Madbreaks

Verwandte Themen