- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个文件。我正在尝试查找与特定人相关的所有论文。文档保存在它们的集合中,并且正在创建从 Person
到 Paper
的引用,但不是相反。
/** @ODM\Document */
class Paper
{
/**
* @ODM\Id
*/
protected $id;
/** @ODM\ReferenceOne(targetDocument="Person", cascade={"all"}, mappedBy="papers") */
protected $person;
public function __get($property) {
return $this->$property;
}
public function __set($property, $value) {
$this->$property = $value;
}
public function toArray() {
return get_object_vars($this);
}
}
/** @ODM\Document */
class Person
{
/**
* @ODM\Id
*/
protected $id;
/** @ODM\ReferenceMany(targetDocument="Paper", cascade={"all"}, inversedBy="person") */
protected $papers;
public function __get($property) {
return $this->$property;
}
public function __set($property, $value) {
$this->$property = $value;
}
public function toArray() {
return get_object_vars($this);
}
}
创建一个新的双向引用
$person = $dm->getRespository('Person')->find($person_id);
$paper = new Paper();
$person->papers->add($paper);
$dm->persist($person);
$dm->flush();
在代码的后面,这个查询返回 0 个结果;不是应该返回指定人写的论文吗?
$papers = $dm->createQueryBuilder('Paper')
->field('person.$id')->equals(new \MongoId($person_id_as_string))
->getQuery()->execute();
最佳答案
如果 Paper::person 被注释为“mappedBy”,这意味着 Paper 不是“拥有方”并且 Doctrine 不会保留对 Paper::person 的任何更改。
要使您的查询有效,请将 Paper 设为拥有方,以便 Paper 存储对 Person 的引用。
/** @ODM\Document */
class Person
{
/** @ODM\ReferenceMany(targetDocument="Paper", mappedBy="person") */
protected $papers;
}
/** @ODM\Document */
class Paper
{
/** @ODM\ReferenceOne(targetDocument="Person", inversedBy="papers") */
protected $person;
}
创建论文并保留对人的引用:
$person = $dm->getRespository('Person')->find($person_id);
$paper = new Paper();
$paper->person = $person;
$dm->persist($paper);
$dm->flush();
按 $person 查询论文:
$papers = $dm->createQueryBuilder('Paper')
->field('person')->references($person)
->getQuery()->execute();
关于doctrine - ODM : Cannot achieve bi-directional relationship,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923438/
我需要 MongoDB 中的自动递增字段。我找到了 documentation on how to use a counter-collection in MongoDB . 但是,我的值 id 不是
我需要 MongoDB 中的自动递增字段。我找到了 documentation on how to use a counter-collection in MongoDB . 但是,我的值 id 不是
我在 ZF2 + Doctrine ODM + doctrine-mongodb-odm-module 上有应用,但找不到如何使用这些模块创建分页的示例。有没有这样的例子? 最佳答案 试试看这里Doc
我正在尝试通过特殊验证事件来验证数据完整性。我的 Phalcon\Mvc\Collection 模型使用一些 Phalcon\Mvc\Model\Validator 验证器实现了validation(
我有一个已经变成表格的 Doctrine mongodb 文档。该文档有两个 emebedOne 文档,它们也在表单中。正在验证主文档,但未验证嵌入文档。我正在使用自定义断言,但我认为这并不重要。 文
我目前正在处理嵌入文档,我需要从父文档中获取帐户信息以生成 URL。如何从嵌入文档的 getter 访问父文档? /** @文档 */ 类用户 { //... /** @EmbedOne(target
我想在我的项目中使用 doctrine ODM,我想为我的每个客户建立一个单独的数据库。我希望能够通过我的 API 在运行时管理客户端。我现在的问题是: 当我设置 doctrine ODM 时,我必须
我们正在使用 Symfony2/DoctrineOdm/MongoDB,当我们这样做时: if ($doc.referenceOne != null) { ... } 和 $doc.reference
我遇到以下问题:使用 distinct 时无法限制结果数。例子: $stores = $this->dm->createQueryBuilder('Application\Document\Item'
我开始编写 Doctrine 2 Mongo ODM 单元测试,但意识到我的代码中没有好的策略来执行此操作。我想运行测试并实际保留对象,但我希望允许在拆解中轻松删除我的测试数据。集合和数据库名称必须根
我想知道是否可以在 phalcon ODM 中进行批量删除(使用单个操作),而不是通过“delete()”方法获取文档并在循环中一个一个地删除它们? 我需要这样的东西: $db->users->rem
我已经按照 中的描述设置了一个类 http://www.doctrine-project.org/docs/mongodb_odm/1.0/en/reference/geospatial-querie
这可能是一个愚蠢的问题,但我正在努力在 mongoDB 文档中保存一个大数字。 基本上,我想保存一个可以大于 max int 值的数字。因此,我将我的文档字段声明为 @Field(type="floa
我一直在尝试减少 Web API 上的数据库查询数量。我的数据库有 3 个集合:playground、widget、token 一个 Playground 有很多小部件,一个小部件有一个 token
我一直收到这个错误: PHP Fatal error: Uncaught exception 'Doctrine\Common\Annotations\AnnotationException' wit
我正在 koajs 中构建一个样板应用程序供以后使用。我无法决定是否应该使用 ODM。我可以使用 ES6 类定义我的模式,即使我使用像 mongoose 这样的东西,我也可能最终会编写大量自定义验证器
继续我关于 EAV 的问题,我正在考虑使用MongoDB来存储产品属性。 我将使用 MongoDB(或其他文档数据库)存储此应用程序的目录部分 - 类别、产品及其所有相关信息。 我的问题是,当使用 O
我将如何在学说 odm 中模拟 SQL 中的 like 运算符? 用例:我想在变量 $search 的字段标题字符串中找到一个主题。 查询会是什么样子? 感谢所有回答 最佳答案 使用 MongoReg
我有一个关于(顺便说一句真的很棒!)Doctrine ODM 的简单问题。 假设您有这样的文档: /** * @Document */ class Test { /** @Id */
我想知道是否有相当于 MySQL-Query 的: SELECT COUNT(*) FROM users 在 MongoDB ODM 中? 这可能有效: $qb = $this->dm->cre
我是一名优秀的程序员,十分优秀!