2012-04-03 27 views
0

我正在使用MongoDB和Morphia Object-2-Document映射库。我的印象是Morphia使用“日志”模式,因此使用事务来存储/检索数据 - 这意味着可靠性不应该成为问题。MongoDB能否在数据库中搞乱数据

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

这是Mongo对我的数据可能做的事情,还是我需要在别处寻找问题。

+0

如果它有一个主要的bug,它会被修复(或者至少是众所周知的)。可能是你搞乱了数据,而不是MongoDB。我不会想象它会在存储数据后对数据进行任何类型的转换。 – Corbin 2012-04-03 06:23:14

+0

@Corbin :)好点。我放心了。 – Ankur 2012-04-03 06:24:32

+1

我应该指出,尽管我对MongoDB的体验包含大约30分钟的“ooo这个很漂亮”的风格。据我所知,它可能实际上转换数据。但是,正如Boosty所说,数据库旨在存储数据,而不是破坏数据。 (不完全是他说的,但一般的要诀:)) – Corbin 2012-04-03 06:25:40

回答

2

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

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

+0

谢谢Boosty。然而,Mongo有可能“移动数据”,并且在事情发生时“事情可能会出错”。我知道这是一个模糊的问题,如果无法回答,请不要担心。无论如何,我真的希望它不是MongoDB,它运作得非常好。 – Ankur 2012-04-03 06:20:02

+1

有些东西总是会出错,当然,但是mongoDB已经是一个相当成熟的产品,并且已经得到了广泛的测试。像内部移动数据那样相对简单的东西可能工作正常。 (我说的可能很多,因为我不知道mongoDB的开发情况) – 2012-04-03 06:26:46

2

我是吗啡使用“中国”模式,因此使用事务存储的印象/检索数据 - 这意味着可靠性不应该是一个问题

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

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

我从来没有过任何问题,但一个字段(所有文件)有这么多废话值...

这通常涉及二进制数据或不正确编码字符串(取决于你所看到的非感测数据)。 MongoDB中的错误数据会引发异常,所以MongoDB显然认为它有正确的数据。

+0

感谢您的支持。 “MongoDB中的错误数据会引发异常,所以MongoDB明确地相信它有正确的数据。”这将有助于记住。 – Ankur 2012-04-10 01:22:06