void doWork( string collName , DBClientReplicaSet * conn ) {
BSONObj p1 = BSON( "name1" << "Joe" << "age" << 3 );
BSONObj p2 = BSON( "name2" << "Joe1" << "age" << 332 );
BSONObj p3 = BSON( "name3" << "Joe2" << "age" << 333 );
conn->insert( collName , p1 , 0 );
conn->insert( collName , p2 , 0 );
conn->insert( collName , p3, 0 );
BSONArray arr = BSON_ARRAY( p1 );
Query query;
query.readPref(mongo::ReadPreference_Nearest, arr); //<- fail
//query.readPref(mongo::ReadPreference_SecondaryPreferred, arr); <-works OK
auto_ptr<DBClientCursor> cursor = conn->query( "mytestdb.sample" ,query);
cout<<" Reading: "<<endl;
int count = 0;
while ( cursor->more() ) {
count++;
BSONObj obj = cursor->next();
cout << "\t " << obj << endl;
}
}
int main( int argc , const char ** argv ) {
Status status = client::initialize();
string errmsg;
ConnectionString cs = ConnectionString::parse( "mongodb://nslrack60/?replicaSet=rs0" , errmsg ); <-connecting to master
DBClientReplicaSet * conn = static_cast<DBClientReplicaSet*>( cs.connect( errmsg, 0 ) );
string collName = "mytestdb.sample";
conn->dropCollection( collName );
doWork(collName, static_cast<DBClientReplicaSet*>( cs.connect(errmsg) ) );
return EXIT_SUCCESS;
}