Mangouste avec ReplicaSet sur l'Atlas
J'ai un jeu de réplicas sur MongoDB Atlas et c'est mon shell mongo chaîne de connexion qui relie parfaitement:
$ mongo "mongodb://MY_SERVER-shard-00-00-clv3h.mongodb.net:27017,MY_SERVER-shard-00-01-clv3h.mongodb.net:27017,MY_SERVER-shard-00-02-clv3h.mongodb.net:27017/MY_DATABASE?replicaSet=MY_REPLICASET-NAME-shard-0" --ssl --username MY_USERNAME --password MY_PASSWORD --authenticationDatabase MY_ADMIN_DATABASE
Comment puis-je convertir utiliser dans mangouste? Comment puis-je construire ma uri et les options de la variable?
J'ai essayé sans succès:
//connection string using mongoose:
var uri = 'mongodb://MY_USER:MY_PASSWORD@' +
'MY_SERVER-shard-00-00-clv3h.mongodb.net:27017,' +
'MY_SERVER-shard-00-01-clv3h.mongodb.net:27017,' +
'MY_SERVER-shard-00-02-clv3h.mongodb.net:27017/MY_DATABASE';
var options = {
replset: {
ssl: true,
authSource: 'MY_ADMIN_DATABASE',
rs_name: 'MY_REPLICASET_NAME-shard-0'
}
};
mongoose.connect(uri, options);
var db = mongoose.connection;
J'ai essayé, y compris de l'utilisateur: et pass: sur options, suppression MY_USER:MY_PASSWORD@ d'uri, de changer rs_name de jeu de réplication, chaque tentative infructueuse. Il semble que la mangouste n'est pas compte tenu de la authSource option.
À l'aide de la mongojs, il fonctionne très bien avec le code suivant:
//connection string using mongojs:
var uri = 'mongodb://MY_USER:MY_PASSWORD@' +
'MY_SERVER-shard-00-00-clv3h.mongodb.net:27017,' +
'MY_SERVER-shard-00-01-clv3h.mongodb.net:27017,' +
'MY_SERVER-shard-00-02-clv3h.mongodb.net:27017/MY_DATABASE';
var options = {
ssl: true,
authSource: 'MY_ADMIN_DATABASE',
replicaSet: 'MY_REPLICASET_NAME-shard-0'
};
var db = mongojs(uri,'', options);
Mais, j'ai besoin d'utiliser la mangouste à cause de l'ODM dans mon projet.
Comment puis-je construire ma uri et les options de la variable à l'aide de la mangouste?
OriginalL'auteur Biruel Rick | 2016-12-18
Vous devez vous connecter pour publier un commentaire.
SUR MONGODB 3.4.x
J'ai résolu ce problème en mettant les "options" de la valeur directement dans 'uri' string, selon la documentation (http://mongoosejs.com/docs/connections.html) sur "Jeu de Réplicas Connexions".
Maintenant, il fonctionne très bien!
AVIS AVEC MONGODB 3.6
Sur MongoDB Atlas à l'aide de la version 3.6.x, la chaîne de connexion changé pour utiliser un serveur DNS faisant le lien plus court.
...si vous utilisez cette chaîne de connexion dans votre application, ce qui va connecter avec succès, mais il sera capable de lire et écrire uniquement avec atlas utilisateurs ayant des privilégies d'accès (atlasAdmin, readWriteAnyDatabase...).
Vous travailler avec un utilisateur spécifique avec privilège qu'readWrite votre base de données, vous aurez besoin de garder la même chaîne de connexion utilisée dans MongoDB 3.4 parce que la mangouste ne reconnaît pas l'option DNS (mongodb+srv).
P. S. toutes les nouvelles ressources de MongoDB 3.6.x va continuer à travailler normalement!
"la mangouste": "^4.10.8" @AdeelImran Imran
OriginalL'auteur Biruel Rick
Ajouter un nom d'utilisateur et le mot de passe de connexion de base de données
Connexion Standard De Format De Chaîne
OriginalL'auteur Engin Kartal