繁体   English   中英

原则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,但不持久化。 也就是说,当我然后在findAll()上调用findAll()方法时,它什么也不返回。 而且它不再创建任何数据库。 每次我尝试保存$ divRoot时,其字段都会更改。 我真的被卡住了,请帮忙

更新1

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

我已经找出了问题所在。 我只使用嵌入式文档,而它必须至少是一个根文档。 最初所有它们都被标记为Documents,这就是为什么我能够保留它们的原因,与数据库删除无关。

因此,我试图保留仅包含EmbeddedDocuments的复合文件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM