File: mongocollection-aggregatecursor-003.phpt

package info (click to toggle)
php-mongo 1.5.7-1
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 11,040 kB
  • ctags: 2,802
  • sloc: ansic: 17,632; xml: 2,195; php: 1,630; pascal: 330; makefile: 52; sh: 39
file content (66 lines) | stat: -rw-r--r-- 1,554 bytes parent folder | download
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