Beispiel #1
0
<?php

require '../src/Rocketr/Autoloader.php';
\Rocketr\Autoloader::register();
$Knot = new Rocketr\Engine();
$Knot->connexion('mongodb://127.0.0.1:27017')->database('default');
$map = ['reference' => ['books' => ['author' => 'authors', 'writer' => 'authors']], 'has_collection' => ['libraries' => ['archives' => 'books', 'books' => 'books'], 'shelves' => ['books' => 'books'], 'authors' => ['beloved_places' => 'cities']]];
\Rocketr\Schema\Map::load($map);
//\Rocketr\Schema\Reference::add('books', ['author' =>  'authors']);
echo 'One To Many Relation --- <br />';
echo 'From the descendant --- <br />';
$B = $Knot->find('books')->where('author.name = "Terry Pratchett"')->one();
echo "<pre>";
echo print_r($B, true);
echo "</pre>";
echo 'From the ascendant --- <br />';
$A = $Knot->find('authors')->having('books')->where('title = "Quand le diable était jeune"')->as('author')->one();
echo "<pre>";
echo print_r($A, true);
echo "</pre>";
Beispiel #2
0
<?php

require '../../../src/Rocketr/Autoloader.php';
\Rocketr\Autoloader::register();
$DB = new Rocketr\Engine();
$DB->connexion('mongodb://127.0.0.1:27017')->database('default');
$title = "Cinq semaines en ballon";
$DB->find('books')->where('title = "' . $title . '"')->one();
$DB->find('books')->where("title = '{$title}'")->one();
$DB->find('books')->where('title = "Cinq semaines en ballon"')->one();
$DB->find('books')->where('title LIKE "cinq"')->one();
//$cities = $DB->find('cities')->where('pop = 1455')->all();
//
//echo "<pre>";
//echo print_r($cities, true);
//echo "</pre>";
//
//
//
//
//echo '---- <br />';
//
//$C = new \MongoClient('mongodb://127.0.0.1:27017');
//$DB = $C->selectDB('default');
//
//$query = ['pop'=>1455];
//echo "<pre>";
//echo var_dump($query, true);
//echo "</pre>";
//$r = $DB->cities->findOne($query);
//
Beispiel #3
0
<?php

require '../../../src/Rocketr/Autoloader.php';
\Rocketr\Autoloader::register();
$DB = new Rocketr\Engine();
$DB->connexion('mongodb://127.0.0.1:27017')->database('default');
$map = ['reference' => ['books' => ['author' => 'authors']], 'has_collection' => ['authors' => ['places' => 'cities']]];
\Rocketr\Schema\Map::load($map);
$TerryPratchett = $DB->create('authors')->set('name', 'Terry Pratchett')->one();
$IanFleming = $DB->create('authors')->set('name', 'Ian Fleming')->one();
$JulesVernes = $DB->create('authors')->set('name', 'Jules Vernes')->one();
$Book = $DB->create('books')->set('title', "Cinq semaines en ballon")->set('author', $JulesVernes)->one();
$Book = $DB->create('books')->set('title', "Voyage au centre de la Terre")->set('author', $JulesVernes)->one();
$Book = $DB->create('books')->set('title', "Voyage au centre de la Terre")->set('author', $JulesVernes)->one();
Beispiel #4
0
<?php

require '../src/Rocketr/Autoloader.php';
\Rocketr\Autoloader::register();
$Knot = new Rocketr\Engine();
$Knot->connexion('mongodb://127.0.0.1:27017')->database('default');
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')->set('summary', "C'est l'histoire d'un mage... qui part en vacances")->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')->push('pages', 'Il était une fois... une autre fois en fait.')->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')->push('pages', 'Et a la fin, il meurt.')->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')->push('pages', 'Mais non, je déconne, il revient pour faire un 8eme fils.')->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')->push('pages', 'Et aussi les 7 précédents.')->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')->push('pages', 'Ouai, les bon vieux boulards, ça ce vend mieux... ')->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')->set('pages', [
//   'Il était une fois... une autre fois en fait.',
//   'Et a la fin, il meurt.',
//   'Mais non, je déconne, il revient pour faire un 8eme fils.',
//   'Et aussi les 7 précédents.'
//])->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')->pull('pages', 'Et aussi les 7 précédents.')->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')
//      ->pull('pages', 'Ouai, les bon vieux boulards, ça ce vend mieux... ')
//      ->pull('pages', 'Mais non, je déconne, il revient pour faire un 8eme fils.')
//      ->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')
//                      ->remove('summary')
//                      ->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')
//   ->remove('pages')
//   ->one();
//$Rocketr->update('books')->where('_id = "54ac66d3d5c2c0fe57d63afa"')->rename('title', 'the_title')->one();
//$Rocketr->update('books')->rename('title', 'the_title')->all();
Beispiel #5
0
<?php

require '../../../src/Rocketr/Autoloader.php';
\Rocketr\Autoloader::register();
$DB = new Rocketr\Engine();
$DB->connexion('mongodb://127.0.0.1:27017')->database('default');
//Each stage method are part of the current pipeline stage
////Distinct values
//$States = $DB->aggregate('cities')->distinct('state');
//
////echo "<pre>";
////echo print_r($States, true);
////echo "</pre>";
//Aggregation pipeline
$LargeCities = $DB->aggregate('cities')->where('pop > 10000')->group('state')->count('big_cities')->max('pop', 'biggest_city')->sum('pop', 'state_pop')->where('biggest_city > 50000')->all();
$out = [['state' => 'MA', 'big_cities' => 347, 'biggest_city' => 'BOSTON', 'state_pop' => 2000000], ['state' => 'CA', 'big_cities' => 412, 'biggest_city' => 'LOS ANGELES', 'state_pop' => 42000000]];
echo "<pre>";
echo print_r($LargeCities, true);
echo "</pre>";
<?php

require '../src/Rocketr/Autoloader.php';
\Rocketr\Autoloader::register();
$Knot = new Rocketr\Engine();
$Knot->connexion('mongodb://127.0.0.1:27017')->database('default');
$map = ['reference' => ['books' => ['author' => 'authors', 'writer' => 'authors']], 'has_collection' => ['libraries' => ['archives' => 'books', 'books' => 'books'], 'shelves' => ['books' => 'books'], 'authors' => ['beloved_places' => 'cities']]];
\Rocketr\Schema\Map::load($map);
echo 'Collection --- <br />';
/** Document side (get descendants) */
//Find the shelves that have the book "La huitième couleur"
$S = $Knot->find('shelves')->where('books.title = "La Huitième Couleur"')->one();
//$S = $Rocketr->find('libraries->where('archives.title = "La Huitième Couleur"')
//                           ->one();
//$Rocketr->find('users')->where('roles.name = "admin"')
//                    ->one();
echo "<pre>";
echo print_r($S, true);
echo "</pre>";
/**  Reverse Collection side (collection documents target) --- Nope, cannot do that.;


$Bks = $Rocketr->find('books')->in('archives')->where('libraries.address.city = "Paris" AND title BEGINWITH "La huitième"')
                           ->or_in('for_sales')->
                           ->one();

$S = $Rocketr->find('shelves')->select('books')->one();

echo "<pre>";
echo print_r($Bks, true);
echo "</pre>";
Beispiel #7
0
<?php

require '../src/Rocketr/Autoloader.php';
\Rocketr\Autoloader::register();
$Knot = new Rocketr\Engine();
$Knot->connexion('mongodb://127.0.0.1:27017')->database('default');
$map = ['reference' => ['in_stock' => ['product' => 'products', 'store' => 'stores'], 'stores' => ['street_address' => 'addresses'], 'addresses' => ['city' => 'cities']]];
\Rocketr\Schema\Map::load($map);
$Paris = $Knot->find('cities')->where('name = "Paris"')->one();
$Tours = $Knot->find('cities')->where('name = "Tours"')->one();
$ParisAddress = $Knot->create('addresses')->set('city', $Paris)->one();
$ToursAddress = $Knot->create('addresses')->set('city', $Tours)->one();
$Knot->create('stores')->set('trade_mark', 'Carrefour Market')->set('_id', '1')->set('kind', 'proximity')->set('price_range', 'low')->set('street_address', $ParisAddress)->one();
$Knot->create('stores')->set('trade_mark', 'Monop')->set('_id', '2')->set('kind', 'proximity')->set('price_range', 'medium')->set('street_address', $ToursAddress)->one();
$Knot->create('stores')->set('trade_mark', 'U')->set('_id', '3')->set('kind', 'proximity')->set('price_range', 'low')->set('street_address', $ParisAddress)->one();
$Knot->create('stores')->set('trade_mark', 'Causses')->set('_id', '4')->set('kind', 'bio')->set('price_range', 'hight')->set('street_address', $ParisAddress)->one();
//We will make a sandwish.
$Knot->create('products')->set('_id', '01')->set('name', 'Tomato')->one();
$Knot->create('products')->set('_id', '02')->set('name', 'Ketchup')->one();
$Knot->create('products')->set('_id', '04')->set('name', 'Salad')->one();
$Knot->create('products')->set('_id', '05')->set('name', 'Pickles')->one();
$Knot->create('products')->set('_id', '07')->set('name', 'White Bread')->one();
$Knot->create('products')->set('_id', '08')->set('name', 'Mayonaise')->one();
$Knot->create('products')->set('_id', '09')->set('name', 'Honey Mustard')->one();
$Knot->create('products')->set('_id', '010')->set('name', 'Pulled Porck')->one();
$Knot->create('products')->set('_id', '011')->set('name', 'Pastrami')->one();
$Knot->create('products')->set('_id', '012')->set('name', 'Turkey Pastrami')->one();
$Knot->create('in_stock')->set('product', '01')->set('store', '1')->set('price', 1)->set('quantity', 100)->set('unit', 'kg')->one();
$Knot->create('in_stock')->set('product', '01')->set('store', '2')->set('price', 1.5)->set('quantity', 20)->set('unit', 'kg')->one();
$Knot->create('in_stock')->set('product', '01')->set('store', '3')->set('price', 0.9)->set('quantity', 200)->set('unit', 'kg')->one();
$Knot->create('in_stock')->set('product', '01')->set('store', '4')->set('price', 1.8)->set('quantity', 10)->set('unit', 'kg')->one();
Beispiel #8
0
<?php

require '../../src/Rocketr/Autoloader.php';
\Rocketr\Autoloader::register();
$DB = new Rocketr\Engine();
$DB->connexion('mongodb://127.0.0.1:27017')->database('default');
$map = ['reference' => ['in_stock' => ['product' => 'products', 'store' => 'stores', 'warehouse' => 'stores'], 'stores' => ['street_address' => 'addresses'], 'addresses' => ['city' => 'cities']]];
\Rocketr\Schema\Map::load($map);
$S = $Knot->find('stores')->where('price_range = "medium"')->having('in_stock', 'store')->where('product.name = "Pickles"')->having('in_stock', 'store')->where('product.name = "Pastrami"')->all();
echo "<pre>";
echo print_r($S, true);
echo "</pre>";
echo '----- <br />';
$Stores = $DB->find('stores')->where('street_address.city.name = "Paris"')->having('in_stock', 'store')->where('product.name = "Pickles"')->all();
echo "<pre>";
echo print_r($Stores, true);
echo "</pre>";
echo '----- <br />';
$Books = $DB->find('books')->where('author.name = "Terry Pratchett"')->all();
echo '----- <br />';
$FrCities = $DB->find('cities')->where('department.region.country.name = "France" AND pop > 100000')->one();