2012-06-24 4 views
2

Probablement juste en face de moi, mais je ne suis pas sûr de savoir comment définir le paramètre ReadPreference.Secondary dans le pilote C#? Je voulais distribuer la charge de la requête à mes nœuds secondaires, par opposition à la valeur par défaut. J'ai défini slaveOk() sur les noeuds eux-mêmes.C# MongoDB définir ReadPreference

Toute aide/exemple serait appréciée. Je ne peux pas trouver un bon exemple de définition de cette propriété.

Merci,

S

EDIT: Alors peut-être ReadPreference n'a pas été mis en œuvre dans le pilote C# mais ... qui semble être le cas. Alors, je voudrais utiliser slaveok?

Quelque chose comme l'un des ci-dessous ?:

var mongoServer = MongoServer.Create("mongodb://localhost/? 
replicaSet=myset;slaveOk=true"); 

var db = mongoServer.GetDatabase("MyDb"); 
var coll = db.GetCollection("MyColl"); 

ou

var cs= db.CreateCollectionSettings<BsonDocument>("Users"); 
cs.SlaveOk = true; 
var coll = db.GetCollection(cs); 

EDIT2: On dirait que je pourrais avoir besoin de modifier la chaîne de connexion pour décorer chaque instance Mongo ainsi?

mongodb://serverA:27017,serverB:27017,serverC:27017/?safe=true;replicaset=myreplicaset;slaveok=true 

Répondre

2

Oui, ReadPreferences n'a pas été implémentée dans le pilote C#. Chez 10gen, nous attendions la mise en place de ReadPreferences jusqu'à ce que tous les pilotes, y compris les mongos, puissent tous être implémentés en même temps. Ce support devrait venir approximativement au moment de la publication du serveur 2.2.

+0

Merci Craig .... avez-vous une idée approximative de quand cela sera? – scarpacci

+0

On dirait sur votre feuille de route Juillet 2? Est-ce correct? On dirait que c'est proche :) – scarpacci

+0

Le 2 juillet est un peu tôt. Nous allons libérer le serveur 2.2 quand il sera prêt. Restez à l'écoute :) –