Helper Objects to make writing MongoDB apps easier.
You can easily add sorting by extending DataSorting
class UserSorting extends DataSorting
{
public const Email = 'Email';
public const FirstName = 'FirstName';
public const LastName = 'LastName';
}
you can then use it like so:
UserSorting::AddToSortList(UserSorting::FirstName, UserSorting::ASC);
you then compile the sort list by doing this:
$sort = UserSorting::GetSortList();
this wil allow you you add as many sorting rules as you want to a query.
MongoModelInterface
is an interface helper that'll provide some helper methods for handling model data.
use MongoDB\BSON\Serializable;
use MongoDB\Model\BSONDocument;
use Edd\MongoDbHelpers\MongoModelInterface
class User implements Serializable, MongoModelInterface
{
public $userGuid;
public $email;
public $firstName;
public $lastName;
public function bsonSerialize() : array
{
return [
'UserUuid' => $this->userUuid,
'Email' => $this->email,
'FirstName' => $this->firstName,
'LastName' => $this->lastName
];
}
public function map(BSONDocument $document)
{
$this->userUuid = $document['UserUuid'];
$this->email = $document['Email'];
$this->firstName = $document['FirstName'];
$this->lastName = $document['LastName'];
}
public function toArray() : array
{
return get_object_vars($this);
}
}
map
helps you map a BSON Document result to your model properties.
toArray
is for presenting the data as an array.
MongoRepository
makes it easy to setup a basic repository style architecture, the constructor will create an instance of MongoDB\Client
.
SetCollection
& GetCollection
setup and provide an instance of MongoDB\Collection
.