Doctrine MongoDB ODM不会持续存在



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

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

它将 ID 分配给$divRoot对象,但不保留它。 即,当我在存储库上调用 findAll() 方法时,它不返回任何内容。而且它不再创建任何数据库。每次我尝试保存$divRoot时,它的字段都会发生变化。我真的很卡住,请帮忙

更新 1

如果我初始化一个新的文档管理器,指定文档的新路径(AnnotationDriver::create($documents)(,ODM可以正常工作,持久化和检索文档。

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

因此,我试图保留仅由嵌入文档组成的复合。

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

相关内容

  • 没有找到相关文章

最新更新