/** * Inserts a new object into the database * * @param Morph_Object $object * @return Morph_Object */ private function insert(Morph_Object $object) { $data = $object->__getData(); //set an id if we do not have one if (!array_key_exists('_id', $data)) { $id = array('_id' => md5(uniqid(rand(), true))); $data = array_merge($id, $data); } $savedOk = $this->Db->selectCollection($object->collection())->save($data); if ($savedOk) { $object->__setData($data, Morph_Object::STATE_CLEAN); } return $object; }