问题标签 [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.

0 投票
0 回答
3228 浏览

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])

我应该为entryentryValue表中的数十亿行做好准备。

0 投票
2 回答
2619 浏览

mongodb - 原则 ODM 和无模式设计

继续我关于EAV的问题,我正在考虑使用 MongoDB 来存储产品属性。

我将使用 MongoDB(或其他文档数据库)存储此应用程序的目录部分 - 类别、产品及其所有相关信息。

我的问题是,当使用ODM时,每个实体都有一个模式,这基本上忽略了使用 NoSQL 数据库的无模式优势,不是吗?

如果这是正确的,为什么有人会使用 ODM?

编辑:我发现了一个相关问题,我可以使用哈希实现产品属性功能吗?

0 投票
1 回答
1827 浏览

php - 问题持久化嵌套的嵌套嵌入文档

更新:很确定这是一个错误,在 Jira 上提出了问题:http ://bit.ly/gpstW9
更新(2011 年 5 月 5 日):根据 jwage 的建议,我已切换到类别和帖子之间的引用关系(而不是嵌入)。

我正在使用最新版本的 Doctrine ODM(来自 Git 的新版本)。

我有三个级别的文档(两个嵌入);类别 -> EmbedsMany:帖子 -> EmbedsMany PostVersion。

PostVersion 由 Post 自动处理。当我发布新帖子时,它实际上也在后台创建了一个新的 PostVersion。

我的问题是 Doctrine 与 PostVersions 混淆,如果我检索现有类别并向其添加新帖子,则新帖子的 PostVersions 将添加到类别 $posts 集合中的第一个帖子。

一步步:

  1. 创建新帖子 (Post1) 和类别
  2. 将 Post1 添加到类别
  3. 保持类别、刷新、清除
  4. 检索类别
  5. 发新帖 (Post2)
  6. 将 Post2 添加到类别
  7. 冲洗

在这个阶段的数据库中,应该有一个 Category,两个 Post,每个 Post 有一个 PostVersion。然而,实际发生的是一个类别,两个帖子,第一个帖子有两个 PostVersions,第二个帖子有零个 PostVersions。

请求期间的文档本身是正确的,只是希望将其持久化到错误的数据库中。我错过了什么?

预期结果:

实际结果:


这是我的文件

分类.php

Post.php

PostVersion.php

...我想是时候用 xdebug 弄脏了。

0 投票
1 回答
1616 浏览

php - Doctrine ODM / MongoDB:查询中的 AND

我将 Doctrine ODM 与 mongoDB 一起使用。

我正在尝试执行以下查询:

这个想法是选择在他们的

使用我正在使用的语法,我得到了具有

关于如何进行或是否有可能的任何想法?

0 投票
2 回答
3142 浏览

php - 如何强制 Doctrine MongoDB ODM 文档代理转换为“原始”文档?

我有一个文档用户中引用的文档人员。当我检索用户时,它没有嵌入一个人对象,而是一个人代理对象。有没有办法“强制”代理成为“完整”文档(所以 Person proxy => Person)。

我尝试调用一种方法来检索其他数据(因此 __load 被触发,但对象仍然是“代理”版本。

我希望有人能比 ODM 的文档更清楚地说明这一点。

0 投票
5 回答
7114 浏览

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”不存在,或者无法自动加载。

任何想法为什么?注释被清楚地引用。

0 投票
2 回答
911 浏览

mongodb - 学说 MongoDB geoNear

我想看看如何在不重写教义-mongodb 项目的情况下执行 geoNear 命令。我查看了 Expr.php 和 Builder.php 文件,但没有发现对 geoNear 命令的引用,如何在我的 Doctrine MongoDB ODM 中获得此功能?

谢谢

0 投票
1 回答
219 浏览

mongodb - 我可以在我的普通 php 类中使用 Doctrine Mongodb ODM 吗?

我想为我的单独项目使用 Doctrine mongodb ODM,我想使用此 ODM 执行所有与 mongodb 相关的数据库调用。

当我的应用程序(不在 symphony 中)想要添加用户对象时,我想调用用 Mongodb-ODM 编写的用户文档类

现在我想从我单独的 php 类中调用这个类,如下所示,我们在文档中显示......

在我单独的 php 类中使用这个 $dm= documentmapper 需要哪些步骤?

0 投票
2 回答
1506 浏览

php - Doctrine Mongo 更新 $pull 查询不起作用

我正在尝试使用更新查询删除对文档的引用(为了删除所述文档),$pull但是似乎没有任何事情发生。

我可以手动运行以下 Mongo 查询

效果很好。尝试在 Doctrine 的 ODM 中做同样的事情既不会产生预期的结果,也不会产生任何错误消息。这是我们到目前为止所拥有的

关于我做错了什么的任何提示?

0 投票
4 回答
4139 浏览

php - Doctrine ODM / PHP / MongoDB - 无法查询引用的元素

我有一个事件,它有一个权限,这个权限引用了一个用户。我正在尝试获取与用户相关的所有事件,但我似乎无法让教义按我的意愿工作。

这是我的 Mongo 架构

学说事件实体:

特权实体:

和用户实体:

我尝试了以下但没有成功

我也尝试过使用 Event 类,但没有取得更大的成功......我肯定错过了一些东西,但我不知道是什么!欢迎任何帮助。

谢谢。