<?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>";
<?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); //
<?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();
<?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>";
<?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();