1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
--TEST--
MongoCollection::aggregateCursor (aggregate on secondary)
--SKIPIF--
<?php $needs = "2.5.3"; require_once "tests/utils/replicaset.inc";?>
--FILE--
<?php
require "tests/utils/server.inc";
$dbname = dbname();
/*
MongoLog::setLevel( MongoLog::ALL );
MongoLog::setModule( MongoLog::ALL );
MongoLog::setCallback( function( $a, $b, $c ) { echo $c, "\n"; } );
*/
$command = array(
array( '$limit' => 2 )
);
$rs = MongoShellServer::getReplicasetInfo();
$m = new MongoClient($rs['dsn'], array('replicaSet' => $rs['rsname']));
$d = $m->selectDB($dbname);
$d->setWriteConcern(4); // there are four data carrying nodes
$d->cursorcmd->drop();
for ($i = 0; $i < 10; $i++) {
$d->cursorcmd->insert(array('article_id' => $i));
}
// ==== begin tests, RP on MongoClient
$m->setReadPreference(MongoClient::RP_SECONDARY);
$d = $m->selectDB($dbname);
$c = $d->cursorcmd;
$r = $c->aggregateCursor( $command );
$r->rewind();
$info = $r->info();
echo $info['connection_type_desc'], "\n";
$m->setReadPreference(MongoClient::RP_PRIMARY);
// ==== RP on MongoDB
$d = $m->selectDB($dbname);
$d->setReadPreference(MongoClient::RP_SECONDARY);
$c = $d->cursorcmd;
$r = $c->aggregateCursor( $command );
$r->rewind();
$info = $r->info();
echo $info['connection_type_desc'], "\n";
// ==== RP on MongoCollection
$d = $m->selectDB($dbname);
$c = $d->cursorcmd;
$c->setReadPreference(MongoClient::RP_SECONDARY);
$r = $c->aggregateCursor( $command );
$r->rewind();
$info = $r->info();
echo $info['connection_type_desc'], "\n";
?>
--EXPECT--
SECONDARY
SECONDARY
SECONDARY
|