繁体   English   中英

如何在Zend Framework2上使用PHP通过Doctrine 2 ODM在MongoDB中执行查询?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM