thedigitalproblemsolver / incubator-mongodb
Phalcon 5 Incubator MongoDB
1.2.4
2024-08-28 15:21 UTC
Requires
- php: >=8.3
- ext-json: *
- ext-mongodb: *
- ext-phalcon: ^5.8.0
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.0.0
- mongodb/mongodb: ^1.6
- phalcon/ide-stubs: ^5.8.0
- phpstan/phpstan: ^0.12.18
- squizlabs/php_codesniffer: 3.5.1
- vimeo/psalm: ^4.1
- vlucas/phpdotenv: ^2.5
This package is auto-updated.
Last update: 2024-11-28 15:50:28 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
Method | Description |
---|---|
Helper::isValidObjectId($id) | Checks if id parameter is a valid ObjectID |
Helper::convertDatetime($datetime) | Converts a DateTime object to UTCDateTime from MongoDB |
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(
'collectionManager',
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",
],
]
)
);
}
}