一旦MongoDB进入数据库,它就会搞砸数据

时间:2012-04-03 06:12:52

标签: java mongodb morphia

我正在使用MongoDB和Morphia Object-2-Document映射库。我认为Morphia使用“Journal”模式,因此使用事务来存储/检索数据 - 这意味着可靠性不应成为问题。

我之前从未遇到过任何问题,但是一个字段(对于所有文档)都有这个无意义的值•••••。当我查看数据库时,它看起来是空的。

这是Mongo可能会对我的数据做些什么,还是我需要到别处寻找问题。

2 个答案:

答案 0 :(得分:2)

数据库用于存储数据,而不是在插入时更改它们。所以很可能不是mongoDB。

数据库中的无意义值通常与字符编码有关。检查您的应用程序和mongoDB数据库的编码是否相同。

答案 1 :(得分:2)

  

我认为Morphia使用“Journal”模式,因此使用事务来存储/检索数据 - 暗示可靠性不应成为问题

“Journal”模式将引用Morphia修改MongoDB并等待MongoDB在返回之前将该数据写入日志。

MongoDB对单个文档执行原子更新。但是,它不支持交易。因此,如果您保存一个下面有三个不同集合的Morphia对象,则此处不会出现“启动事务”或“回滚”。

  

我之前从未遇到过任何问题,但是一个字段(对于所有文档)都有这个无意义的值......

这通常涉及二进制数据或错误编码的字符串(取决于您在哪里看到无意义数据)。 MongoDB中的错误数据会抛出异常,因此MongoDB明确认为它具有正确的数据。