/**
* Creates a new database reference
*
* @param string|\Phalcon\Mvc\Collection $collection
* @param mixed|\MongoId|\Phalcon\Mvc\Collection $id
* @param string $database
* @return array
*/
public static function create($collection, $id = null, $database = null)
{
if ($collection instanceof \Phalcon\Mvc\Collection) {
$id = $collection->getId();
$collection = $collection->getSource();
}
if ($id instanceof \Phalcon\Mvc\Collection) {
$id = $id->getId();
}
if (is_array($collection) && self::isRef($collection)) {
if (isset($collection['$id'])) {
$id = $collection['$id'];
}
if (isset($collection['$ref'])) {
$collection = $collection['$ref'];
}
}
if (!$id instanceof \MongoId && $id !== null) {
$id = new \MongoId($id);
}
if ($collection instanceof \MongoId) {
return $collection;
}
if ($id === null) {
return null;
}
return parent::create($collection, $id, $database);
}