2016-06-09 13 views
0

Ich verwende JavaScript, um eine Verbindung zu mehreren Datenbanken gleichzeitig aus der mongo Shell herzustellen. Allerdings ist eine meiner Datenbanken auf Digital Ocean statt AWS, so dass ich ein SSL-Zertifikat auf meinem EC2-Server habe.mongo shell JavaScript entspricht --sslCAFile

Im Allgemeinen verwende ich etwas ähnliches wie diese und mehrere Server auf einer Datei verwenden, um eine Verbindung:

var iptDb = connect("###.###.###.###:27017/dbname); 
iptDb.auth("username", cat("pw")); 

Um meine Digital-Ozean-Datenbank zu verbinden, ich weiß, dass ich hinzufügen muß ssl? = true, wie unten, aber ich weiß nicht, wo ich die Zertifikatsinformationen setzen.

var iptDb = connect("###.###.###.###:27017/dbname?ssl=true"); 
iptDb.auth("username", cat("pw")); 

mongo verwendet --sslCAFile in der Schale des Zertifikats-Pfad zu geben.

Was wäre das Äquivalent, wenn ich es in meine JavaScript Datei schreiben möchte?

Mehr Informationen über --sslCAFile bei MongoDB Configure SSL

+1

Willkommen bei StackOverflow :). Können Sie weitere Details dazu hinzufügen, was Sie meinen, wenn Sie eine Verbindung mit JavaScript herstellen? Verweisen Sie auf Node.js oder einen bestimmten Client und welche sind die zutreffenden Versionen? Der offizielle Node.js-Treiber bietet Unterstützung für SSL-Optionen: http://mongodb.github.io/node-mongodb-native/2.0/reference/connecting/ssl/. – Stennie

+0

@flok Stennie hat Ihnen eine funktionierende Antwort gegeben. Und dieses Beispiel in Verbindung ist flexibel und einfach zu implementieren. – num8er

+0

Danke @Stennie. Ich verbinde mich mit mehreren Datenbanken unter Verwendung eines kombinierten Shell-Skripts und eines regulären Javascript-Skripts (nicht Knoten, leider); Der obige Code ist, was ich normalerweise im Javascript-Teil verwende. Ich hatte jedoch noch nie zuvor eine Verbindung zu einer db mit SSL herstellen müssen und weiß nicht, wo ich das Zertifikat ablegen soll. Wenn ich nicht den richtigen Weg finde, um mich mit Javascript zu verbinden, werde ich um Zustimmung bitten, mit dem Knoten fortzufahren. Vielen Dank nochmal – rogue0137

Antwort

1

mongo Die Schale ist nicht beabsichtigt, ein vollständiger Ersatz-Treiber zu sein; Einige Optionen (wie --sslCAFile) können nur als Befehlszeilenparameter bereitgestellt werden. Wie bei MongoDB 3.2 gibt es weitere Einschränkungen von mongo Shell-Skripten wie einige I/O-Optionen (keine Eingabemethoden und begrenzte Ausgabemethoden).

Wenn Ihre Anforderungen relativ einfach sind und Sie keinen Treiber installieren möchten, könnten Sie vielleicht ein Shell-Skript (bash/zsh/...) schreiben, um mehrere Aufrufe von mongod mit den erwarteten Verbindungsparametern auszuführen.

Für alle wichtigen Scripting würde ich empfehlen, einen der officially supported drivers verwenden, die volle Unterstützung für SSL-Optionen enthalten wird. Siehe zum Beispiel die Node.js driver SSL connection tutorial.

+0

Danke @Stennie. Ich werde wahrscheinlich Node benutzen. Ty – rogue0137

Verwandte Themen