问题标签 [doctrine-odm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - 原则:ODM 与 ORM
我考虑在我的新 Doctrine 2.0 项目中使用 ODM/ORM/混合 ODM 和 ORM 实体。什么时候应该使用 ORM(MySQL InnoDB),什么时候应该使用 ODM(MongoDB)?我应该将它混合在一个项目中吗?
我的应用程序的伪结构(类似 Google 阅读器):
- 用户 { id、登录名、密码、电子邮件 }
- 频道{ ID,网址}
- 条目 { id、channelId、标题、正文、日期 }
- entryValue { entryId, userId, value }
- userFriend { user1Id, user2Id }
最受欢迎的功能:
- getValuesOfNewsByUsers(newsId, [userIdArray])
- getEntriesByUserWithMinValue(userId, minValue)
- areFriends(user1, user2)
- getEntryValues(userId, [entryIdArray])
我应该为entry和entryValue表中的数十亿行做好准备。
php - 问题持久化嵌套的嵌套嵌入文档
更新:很确定这是一个错误,在 Jira 上提出了问题:http ://bit.ly/gpstW9
更新(2011 年 5 月 5 日):根据 jwage 的建议,我已切换到类别和帖子之间的引用关系(而不是嵌入)。
我正在使用最新版本的 Doctrine ODM(来自 Git 的新版本)。
我有三个级别的文档(两个嵌入);类别 -> EmbedsMany:帖子 -> EmbedsMany PostVersion。
PostVersion 由 Post 自动处理。当我发布新帖子时,它实际上也在后台创建了一个新的 PostVersion。
我的问题是 Doctrine 与 PostVersions 混淆,如果我检索现有类别并向其添加新帖子,则新帖子的 PostVersions 将添加到类别 $posts 集合中的第一个帖子。
一步步:
- 创建新帖子 (Post1) 和类别
- 将 Post1 添加到类别
- 保持类别、刷新、清除
- 检索类别
- 发新帖 (Post2)
- 将 Post2 添加到类别
- 冲洗
在这个阶段的数据库中,应该有一个 Category,两个 Post,每个 Post 有一个 PostVersion。然而,实际发生的是一个类别,两个帖子,第一个帖子有两个 PostVersions,第二个帖子有零个 PostVersions。
请求期间的文档本身是正确的,只是希望将其持久化到错误的数据库中。我错过了什么?
预期结果:
实际结果:
这是我的文件
分类.php
Post.php
PostVersion.php
...我想是时候用 xdebug 弄脏了。
php - Doctrine ODM / MongoDB:查询中的 AND
我将 Doctrine ODM 与 mongoDB 一起使用。
我正在尝试执行以下查询:
这个想法是选择在他们的
使用我正在使用的语法,我得到了具有
关于如何进行或是否有可能的任何想法?
php - 如何强制 Doctrine MongoDB ODM 文档代理转换为“原始”文档?
我有一个文档用户中引用的文档人员。当我检索用户时,它没有嵌入一个人对象,而是一个人代理对象。有没有办法“强制”代理成为“完整”文档(所以 Person proxy => Person)。
我尝试调用一种方法来检索其他数据(因此 __load 被触发,但对象仍然是“代理”版本。
我希望有人能比 ODM 的文档更清楚地说明这一点。
symfony - Symfony2 - DoctrineMongoDBBundle - Doctrine\Common\Annotations\AnnotationException
我正在尝试使用 DoctrineMongoDBBundle,但是,我遇到了一个问题。
在我的 config.yml 中,我有:
我的 User.php 类:
当我运行命令时:
我收到以下错误:
[Doctrine\Common\Annotations\AnnotationException]
[语义错误] HALL\HelloWorldBundle\Document\User 类中的注释“@Doctrine\ODM\MongoDB\Mapping\Annotations\Document”不存在,或者无法自动加载。
任何想法为什么?注释被清楚地引用。
mongodb - 学说 MongoDB geoNear
我想看看如何在不重写教义-mongodb 项目的情况下执行 geoNear 命令。我查看了 Expr.php 和 Builder.php 文件,但没有发现对 geoNear 命令的引用,如何在我的 Doctrine MongoDB ODM 中获得此功能?
谢谢
mongodb - 我可以在我的普通 php 类中使用 Doctrine Mongodb ODM 吗?
我想为我的单独项目使用 Doctrine mongodb ODM,我想使用此 ODM 执行所有与 mongodb 相关的数据库调用。
当我的应用程序(不在 symphony 中)想要添加用户对象时,我想调用用 Mongodb-ODM 编写的用户文档类
现在我想从我单独的 php 类中调用这个类,如下所示,我们在文档中显示......
在我单独的 php 类中使用这个 $dm= documentmapper 需要哪些步骤?
php - Doctrine Mongo 更新 $pull 查询不起作用
我正在尝试使用更新查询删除对文档的引用(为了删除所述文档),$pull
但是似乎没有任何事情发生。
我可以手动运行以下 Mongo 查询
效果很好。尝试在 Doctrine 的 ODM 中做同样的事情既不会产生预期的结果,也不会产生任何错误消息。这是我们到目前为止所拥有的
关于我做错了什么的任何提示?
php - Doctrine ODM / PHP / MongoDB - 无法查询引用的元素
我有一个事件,它有一个权限,这个权限引用了一个用户。我正在尝试获取与用户相关的所有事件,但我似乎无法让教义按我的意愿工作。
这是我的 Mongo 架构
学说事件实体:
特权实体:
和用户实体:
我尝试了以下但没有成功
我也尝试过使用 Event 类,但没有取得更大的成功......我肯定错过了一些东西,但我不知道是什么!欢迎任何帮助。
谢谢。