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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
| <?php
header('Pragma: no-cache');
include_once('dbug\dbug.php'); // its open source and a single file to copy http://dbug.ospinto.com/
if (!class_exists('Mongo')) die("Mongo support required. Install mongo pecl extension with 'pecl install mongo; echo \"extension=mongo.so\" >> php.ini'");
// returns a connection object to work with
function Connect()
{
try
{
return new Mongo('mongodb://localhost:27017', array('connect' => true));
}
catch (MongoConnectionException $ex)
{
error_log($ex->getMessage());
die("Failed to connect to MongoDB");
}
}
function ShowDBs()
{
$dbs = Connect()->listDBs();
new dBug($dbs);
echo "<hr />";
}
function CreateDB($name)
{
$mongo = Connect();
$mongo->selectDB($name)->createCollection('__tmp_collection_');
$mongo->selectDB($name)->dropCollection('__tmp_collection_');
}
function DropDB($name)
{
Connect()
->selectDB($name)
->drop ();
}
function CreateCollection($db, $col)
{
Connect()
->selectDB($db)
->createCollection($col);
}
function AddDocument($db, $col, $doc)
{
Connect()
->selectDB($db)
->selectCollection($col)
->save($doc);
}
function ShowDocuments($db, $col)
{
$cur = Connect()
->selectDB($db)
->selectCollection($col)
->find();
foreach($cur as $data)
{
echo "\n<div style='float:left;margin-right:10px'>\n";
new dBug($data);
echo "\n</div>\n";
}
}
function CreateSPToAddNumbers($db,$col)
{
Connect()
->selectDB($db)
->selectCollection('system.js')
->save(array(
'_id' => 'addNumbers',
'value' => new MongoCode('function addNumbers(x, y) { return x + y; }')
));
}
function CallSPToAddNumbers($db, $col)
{
echo "<div style='clear:left'/><div style='padding-top:40px'>Calculation: 30 + 12 = ";
var_dump(Connect()->selectDB($db)->execute(
'function(x, y) { return addNumbers(x,y); }',
array(30, 12)));
echo "</div>";
}
?>
<html>
<head><title>mongo test</title></head>
<body>
<?php
//ShowDBs();
DropDB('CC');
//ShowDBs();
CreateDB('CC');
// die();
//ShowDBs();
CreateCollection('CC','x');
// die();
AddDocument('CC','x', array("_id" => "1", "name" => "John", "details" => array("born" => "1986", "status" => "tired")));
AddDocument('CC','x', array("_id" => "2", "name" => "Lenny", "details" => array("born" => "1981", "status" => "tired")));
AddDocument('CC','x', array("_id" => "3", "name" => "Frank", "details" => array( "status" => "tired")));
AddDocument('CC','x', array("_id" => "4", "name" => "Ryan", "details" => array("born" => "1988", "status" => "tired")));
AddDocument('CC','x', array("_id" => "5", "name" => "Will", "details" => array("born" => "1990", "status" => "tired")));
ShowDocuments('CC','x');
CreateSPToAddNumbers('CC','x');
CallSPToAddNumbers ('CC','x');
?>
</body>
</html>
|