https://github.com/phalcon/incubator-mongodb
MongoDB Database adapter for Phalcon Framework.
https://github.com/phalcon/incubator-mongodb
mongodb mongodb-driver mongodb-orm
Last synced: 25 days ago
JSON representation
MongoDB Database adapter for Phalcon Framework.
- Host: GitHub
- URL: https://github.com/phalcon/incubator-mongodb
- Owner: phalcon
- License: bsd-3-clause
- Created: 2020-06-25T11:40:11.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-08-05T14:37:53.000Z (over 1 year ago)
- Last Synced: 2025-10-12T14:56:28.988Z (6 months ago)
- Topics: mongodb, mongodb-driver, mongodb-orm
- Language: PHP
- Homepage:
- Size: 196 KB
- Stars: 6
- Watchers: 6
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Phalcon\Incubator\MongoDB
[](http://phalcon.io/discord)
[](https://packagist.org/packages/phalcon/incubator-mongodb)
[](https://packagist.org/packages/phalcon/incubator-mongodb)
[](https://codecov.io/gh/phalcon/incubator-mongodb)
[](https://packagist.org/packages/phalcon/incubator-mongodb/stats)
## 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.
```php
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
```php
use Phalcon\Incubator\MongoDB\Mvc\Collection;
class RobotsCollection extends Collection
{
public $code;
public $theName;
public $theType;
public $theYear;
}
$robots = new RobotsCollection($data);
```
### Search examples
```php
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
```php
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",
],
]
)
);
}
}
```