[英]How to perform query in MongoDB, through Doctrine 2 ODM using PHP on Zend Framework2?
我在这里附上了示例代码。 该查询返回整个db的映射,而不是查询的数据,或者返回Abstract-Hydrator类的错误。
这是映射器的代码: -
<?php
namespace HelpostApi\Document;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
/** @ODM\Document(collection="posts") */
class Post
{
/** @ODM\Id */
private $id;
/** @ODM\Field(type="string") */
private $postTitle;
/**
* @param field_type $postTitle
*/
public function setPostTitle($postTitle)
{
$this->postTitle = $postTitle;
}
/**
* @param field_type $postTitle
*/
public function getPostTitle()
{
return $this->postTitle;
}
}
?>
这里是控制器的代码,包含查询功能: -
<?php
namespace HelpostApi\Controller;
use Zend\Mvc\Controller\AbstractRestfulController;
use HelpostApi\Document\Post;
class PostController extends AbstractRestfulController {
public function getList()
{
$dm = $this->getServiceLocator()->get('doctrine.documentmanager.odm_default');
print_r( $dm->createQueryBuilder('HelpostApi\Document\Post')
->hydrate(false)
->getQuery()
->getSingleResult()
->execute()
);
}
?>
如果您的查询很简单,您可能更喜欢使用其中一种内置ODM方法:
$this->dm->getRepository('HelpostApi\Document\Post')->find($id);
要么
$criteria=array('key'=>'value');
$this->dm->getRepository('HelpostApi\Document\Post')->findOneBy($criteria);
每个都将返回单个HelpostApi \\ Document \\ Post对象或NULL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.