【发布时间】:2015-01-29 23:05:05
【问题描述】:
假设我有文档city 和文档country。
city'由country: ObjectId("xxxx")引用country
如何按国家/地区字段查找城市,例如。 db.Cities.find({"country.code":"US"}
有可能吗?我认为不会,但是否可以将 MongoDB ORM 用于 PHP?
我试过了
$qb = $this->database->createQueryBuilder(self::NAMESPACE_CITY);
$qb->field('country.code')->equals("US")`
我的City 实体包含
/** @ODM\ReferenceOne(targetDocument="\Doctrine\Documents\Country", simple=true) */
protected $country;
文档示例:
<?php
namespace Doctrine\Documents;
use Doctrine\ODM\MongoDB\Mapping\Annotations as ODM;
use Application\Doctrine\Documents\Document;
/** @ODM\Document(collection="Cities") */
class City extends Document {
/** @ODM\Id */
protected $_id;
/** @ODM\ReferenceOne(targetDocument="\Doctrine\Documents\Country", simple=true) */
protected $country;
}
【问题讨论】:
-
这将是一个有点自以为是的评论:文档存储数据库对于任何类型的具有关系的业务逻辑都是很糟糕的。为了您对这个主题感兴趣,这里有一个good article(标题很糟糕)。
-
呵呵,是的,我知道他们对这个很糟糕......我希望它可以通过某种方式解决,至少通过 ORM......
-
你能提供一个样本文件吗?