phalcon / incubator-mongodb
Phalcon Incubator MongoDB
Fund package maintenance!
phalcon
Open Collective
Requires
- php: >=7.4
- ext-json: *
- ext-mongodb: *
- ext-phalcon: ^5.0
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.0.0
- mongodb/mongodb: ^1.6
- phalcon/ide-stubs: ^5.0
- phpstan/phpstan: ^1.10
- squizlabs/php_codesniffer: 3.5.1
- vimeo/psalm: ^4.1
- vlucas/phpdotenv: ^5.5
This package is auto-updated.
Last update: 2024-12-05 15:19:59 UTC
README
Issues tracker
https://github.com/phalcon/incubator/issues
What is it
Set of helpers - simplifying working with mongodb via AR paradigm.
Helper
Phalcon\Incubator\MongoDB\Helper
Collection Manager
Manager controls the initialization of collections, keeping record of relations between the different collections of the application.
use Phalcon\Incubator\MongoDB\Mvc\Collection\Manager; $di->set( 'collectionsManager', function () { return new Manager(); } );
Collection
ActiveRecord class for the management of MongoDB collections.
Defining collection
use Phalcon\Incubator\MongoDB\Mvc\Collection; class RobotsCollection extends Collection { public $code; public $theName; public $theType; public $theYear; } $robots = new RobotsCollection($data);
Search examples
use MongoDB\BSON\ObjectId; // How many robots are there? $robots = RobotsCollection::find(); echo "There are ", count($robots), "\n"; // How many mechanical robots are there? $robots = RobotsCollection::find([ [ "type" => "mechanical", ], ]); echo "There are ", count(robots), "\n"; // Get and print virtual robots ordered by name $robots = RobotsCollection::findFirst([ [ "type" => "virtual", ], "order" => [ "name" => 1, ], ]); foreach ($robots as $robot) { echo $robot->name, "\n"; } // Get first 100 virtual robots ordered by name $robots = RobotsCollection::find([ [ "type" => "virtual", ], "order" => [ "name" => 1, ], "limit" => 100, ]); foreach (RobotsCollection as $robot) { echo $robot->name, "\n"; } $robot = RobotsCollection::findFirst([ [ "_id" => new ObjectId("45cbc4a0e4123f6920000002"), ], ]); // Find robot by using \MongoDB\BSON\ObjectId object $robot = RobotsCollection::findById( new ObjectId("545eb081631d16153a293a66") ); // Find robot by using id as sting $robot = RobotsCollection::findById("45cbc4a0e4123f6920000002"); // Validate input if ($robot = RobotsCollection::findById($_POST["id"])) { // ... }
Adding behavior
use Phalcon\Incubator\MongoDB\Mvc\Collection; use Phalcon\Incubator\MongoDB\Mvc\Collection\Behavior\Timestampable; class RobotsCollection extends Collection { public $code; public $theName; public $theType; public $theYear; protected function onConstruct() { $this->addBehavior( new Timestampable( [ "beforeCreate" => [ "field" => "created_at", "format" => "Y-m-d", ], ] ) ); } }