问题标签 [doctrine-mongodb]
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 - 使用 Doctrine MongoDB 按 ID 查询区分集合
如何使用 Doctrine MongoDB 查询只知道其 ObjectId 的对象?通过 id 查询,using$dm->findOneBy(array('id' => $id))
将只返回一种已区分文档类型的结果,而不返回其他类型的结果。通过命令行查询,例如db.documents.find({ "_id": ObjectId(...) });
返回预期的行。
编辑:问题似乎是,如果我不知道我要查询的文档类型并且我正在使用自定义存储库,则使用的文档名称仅与其中一个的类名称相关联两个文档类(因此对于其他类型的文档返回 0 结果)。这通常是有道理的,因为如果我不知道我正在寻找什么类型的文档,Doctrine 应该如何?给定一个有区别的集合,有没有办法在存储库中自动使用正确的文档名称而无需明确告知教义?
有关问题的抽象,请参见下文。
谢谢!
我有一组受歧视的文档生活在同一个文档集合中,按其type
领域进行区分,例如
我对Document
和Video
类的映射如下所示:
php - 无法在学说 mongo 查询中增加值
我无法做一个简单的增量。那就是“票”的价值永远不会改变。我的文档 ID ($postID) 是正确的,我可以获取该文档。只是无法增加。为什么 Mongo 的文档如此混乱?
php - 无法使用 Composer 安装学说/mongodb-odm
尝试通过 Composer 安装教义/mongodb-odm 我得到了这个:
然而php -m
有:
并且composer.phar show --platform
有:
有任何想法吗?该扩展肯定安装正确,Composer 甚至列出了它。版本(>=1.2.12,<1.4-dev)也符合要求。
mongodb - 在 symfony2 + 教义中更改运行时的 MongoDB 集合
我正在使用 Symfony2 MongoDB + Doctrine,我想告诉教义将我的对象保存在集合中,其名称与定义对象的类的名称不同。此外,新集合的名称应该是不同集合中对象的 id。例如,我有一个名为 Posts 的类,我想将它们保存在一个以原始 User 集合中的用户 ID 命名的集合中。这意味着我需要告诉教义将所有新帖子保存在一个名为 User555 的集合中,并且我应该能够告诉教义创建这个集合并在运行时保存在那里。
我可以看到我可以通过在文件中配置它来静态更改集合的名称,如下所示:Storing a document in a different collection - Mongodb with symfony2
但我需要能够在运行时创建集合。
如果有人指出我正确的方向,我将不胜感激!
干杯。
forms - 如何在 symfony2 中使用 formbuilder 创建一个引用到另一个文档的表单字段?
在我的文档中,我有一个类别成员属性,它引用了同一个类别 Category
现在在我的表单中,我想创建parent
一个选择下拉字段并在其中显示我的所有类别
如何在下拉列表中显示我的所有类别并映射该下拉字段,以便在提交表单时该parent
字段包含父字段的对象 ID
mongodb - Symfony2 和 MongoDB 注释/映射无法识别
我按照食谱中描述的步骤进行操作。但是当我跑步doctrine:mapping:info
或doctrine:generate:entities
学说忽略我的文件时。
这是代码,也许有人有建议。
自动加载.php
作曲家.json
配置.yml:
实体:
symfony - 类不是有效的文档或映射的超类
所以我使用我的 CalendarBundle ( http://github.com/permanaj/CalendarBundle ) 的分支,安装、配置和扩展它,因为它通常是使用包的方式。但是当我尝试运行命令时,它返回错误:
我已经创建了一个扩展父 CalendarBundle 文档的文档,但它仍然返回相同的错误。父文档是否也应该使用@MongoDB 注释?还是只是子文档?如何解决这个问题?
mongodb - 无法使用 DoctrineMongoDBBundle 检索 @Collection 类型的字段的值
我对 MongoDB 文档有以下定义(为简洁起见,我删除了该类的部分内容):
接下来,我使用以下方法生成 setter 和 getter:
我像往常一样使用 User 类,一切正常,我可以存储正确存储在 mongodb 中的用户实例。
使用 mongodb 的控制台查询,我可以看到对象是如何存储的以及languages
存储数组的方式:
但是当我尝试检索数据时:
$user->getEmail()
正确返回电子邮件,但$user->getLanguages()
始终返回一个空数组。
编辑:
我设法使用 CLI 命令运行查询app/console
:
命令的输出print_r
是正确的:
编辑2:
之后我再次尝试了该应用程序,它工作正常。我不知道为什么。
mongodb - 如何在 Doctrine MongoDB 中注释子文档?
我想实现应该建模以下内容的 php 类:(Symfony,DoctrineMongoDBBundle)
我想告诉 ODM:“来自字段是一个只包含 2 个值的对象,发件人的 id 和他的 fname”
我必须使用什么注释?我应该定义像 from.php 这样的另一个类吗?或者我可以创建两个类,如下所示:
如果正确,在我的控制器中,我如何控制“来自”字段以仅保存成员对象的 id 和 fname?假设:
然后 $newNotification->from 设置为一个成员对象,其中包含有关成员的所有信息。但我只希望发件人的 id 和 fname 持续存在!(因为我的项目需要)请原谅我的英语语法错误。谢谢你的帮助...
php - DoctrineMongoDB:如何从数据库创建类?
可以从通过此命令编写的类生成数据库
有没有办法反过来做到这一点?我的意思是从数据库生成类?