sokil on master
fix test (compare)
I'm trying to clear roles, and re-push them but I got Exception
$user->set('roles', []);
$user->pushFromArray('roles', $roles);
Uncaught exception 'MongoCursorException' with message 'localhost:27017: Cannot update 'roles' and 'roles' at the same time'
same error with $user->unsetFields('roles');
Expression
object, since this version - arrays and callables also. Some examples at https://github.com/sokil/php-mongo/blob/master/README.md#distinct-values
Your question is vary abstract and complex).
You don't need document class at all:
$client->getDatabase('databaseName')->getCollection('collectionName')->getDocument('someId')->get('some.field');
You need class for you document if you need some validation, default values, complex getters and setters, etc...
Simple document:
<?php
namespace Vendor\Document;
use \Sokil\Mongo\Document;
class SomeDocument extends Document { }
Then read manual or ask more concrete question...