Symfony 使用DoctrineODM从CouchDb检索文档

Symfony 使用DoctrineODM从CouchDb检索文档,symfony,doctrine-orm,couchdb,doctrine-odm,Symfony,Doctrine Orm,Couchdb,Doctrine Odm,我用它来管理我的数据 我可以创建文档,但无法检索它们 我试过了 $dm = $this->container->get('doctrine_couchdb.odm.default_document_manager'); $users = $dm->getRepository('myGarageBundle:Utente')->find("781f1ea2e6281beb4ee9ff72b6054af2"); 这样检索一个文档,如下所示: object(m

我用它来管理我的数据

我可以创建文档,但无法检索它们 我试过了

    $dm = $this->container->get('doctrine_couchdb.odm.default_document_manager');
    $users = $dm->getRepository('myGarageBundle:Utente')->find("781f1ea2e6281beb4ee9ff72b6054af2");
这样检索一个文档,如下所示:

object(my\GarageBundle\CouchDocument\Utente)[303]
  private 'id' => string '781f1ea2e6281beb4ee9ff72b6054af2' (length=32)
  private 'name' => string 'foo' (length=7)
这没关系。 但如果我这样做了

$users = $dm->getRepository('myGarageBundle:Utente')->findBy(array('name' => 'foo'));
我有一个空数组

我的couchDb中的文档是

{"_id":"781f1ea2e6281beb4ee9ff72b6054af2","_rev":"1-f89fc2372709de90ab5d1f6cfe6a8f47","type":"my.GarageBundle.CouchDocument.Utente","name":"foo"}
检查这个

按简单条件查询仅适用于具有索引的文档 田地

您必须将其添加到您的实体中

/**
 * @CouchDB\Index
 * @CouchDB\Field(type="string")
 */
private $name;
持久性原则与一个称为 ObjectRepository,允许查询 物体。因为CouchDB使用视图进行查询(与 关系数据库中的物化视图)此功能无法 这是现成的。CouchDB理论可以提供一种观点 公开每个文档的每个字段,但此视图只会增长 变成无限大,大部分信息都是无用的

如果您想使用类似
findAll()
的方法,您必须为所有文档编制索引:

<?php
/** @Document(indexed=true) */
class Person
{
    /**
     * @Index
     * @Field(type="string")
     */
    public $name;
}