Doctrine MongoDB ODM 不会持续存在

Doctrine MongoDB ODM does not persist

我正在尝试开始使用 MongoDB 和 Doctrine MongoDB ODM 1.1.3 和 Laravel 5.4。在我手动删除名为 "doctrine" 的数据库(我猜是默认数据库名称)以清理其中的垃圾之前,一切都很好,所以基本上我只是想删除数据库并希望 Doctrine 会创建一个新的。现在当我试图打电话给

$mgr->persist($divRoot);
$mgr->flush();

它为 $divRoot 对象分配了一个 ID,但不保留它。 IE。当我然后在 repo 上调用 findAll() 方法时,它 returns 什么也没有。它不再创建任何数据库。每次我尝试保存 $divRoot 时,它的字段都会发生变化。我真的卡住了,请帮忙

更新 1

如果我初始化一个新的 DocumentManager 并指定文档的新路径 (AnnotationDriver::create($documents)),ODM 会正常工作以保存和检索文档。

我已经弄清楚出了什么问题。我只处理嵌入式文档,而它必须至少是一个根文档。最初所有这些都被标记为文档,这就是为什么我能够保留它们,这与数据库删除无关。

所以,我试图保留一个仅由 EmbeddedDocuments 组成的组合。

解决方案是为标记为 Document 的组合创建根包装器。