2012-04-03 1 views
0

私はMorphia Object-2-DocumentマッピングライブラリでMongoDBを使用しています。私はMorphiaが "Journal"モードを使用しているため、トランザクションを使用してデータを保存/取得するという印象を受けていました。信頼性は問題ではないはずです。MongoDBはDBに入ったらデータを混乱させる可能性があります

私はこれまでに何の問題も経験したことはありませんでしたが、1フィールド(すべてのドキュメント)がこのナンセンス値••••を持っています。 DBを見ると空に見えます。

これは、Mongoが自分のデータに行う可能性があるのでしょうか、それともどこか別の問題を探す必要がありますか?

+0

メジャーなバグがあった場合、修正されている(または少なくともよく知られている)でしょう。おそらくMongoDBではなく、データを乱している可能性があります。私はそれが格納されているデータの任意の種類の変換を行うだろうと想像しません。 – Corbin

+0

@Corbin :)良い点。安心した。 – Ankur

+1

MongoDBでの私の経験は、約30分の "これはすごくいいです"というスタイルのものです。私が知っている限り、それは実際にデータを変換するかもしれません。 Boosty氏によると、DBはデータを保存するように設計されており、データを破壊するものではありません。 (正確に彼が言ったことではないが、一般的な要点:)) – Corbin

答えて

2

データベースはデータを格納するように作られており、挿入するときに変更されることはありません。だからおそらくmongoDBではないでしょう。

データベースのナンセンス値は、通常、文字エンコーディングと関係があります。アプリケーションとmongoDBデータベースでエンコーディングが同じであることを確認してください。

+0

ありがとうBoosty。しかし、Mongoが「データを移動する」可能性があり、それが起こると「事態が悪化する」可能性があります。それは漠然とした質問だとわかります。とにかく、MongoDBではないことを本当に願っています。 – Ankur

+1

何かはいつも間違っていますが、mongoDBはかなり成熟した製品であり、広範にテストされています。内部的にデータを動かすなどの単純なことは、おそらく正しく動作するでしょう。 (私はmongoDBの開発について何も知らないので、おそらく多くのことを言う) –

2

私はMorphiaは「ジャーナル」モードを使用するため、データを取得/保存するためのトランザクションを使用しているという印象の下にあった - 信頼性が

「ジャーナル」モードはを参照することになり問題にはならないことを意味していますMorphiaはMongoDBを修正し、MongoDBがそのデータをジャーナルに書き込んで返却するまで待っていました。

MongoDBは個々のドキュメントに対してアトミックな更新を実行します。ただし、トランザクションはサポートされていません。したがって、3つの異なるコレクションがあるMorphiaオブジェクトを保存すると、ここでは「開始トランザクション」または「ロールバック」はありません。通常、バイナリデータまたは正しくエンコードされた文字列のいずれかを伴う

私は前に、すべての問題がなかったが、(すべての文書のための)一つのフィールドは、このナンセンス値を持っている...

は(あなたが見ている場所によって異なりますノンセンスデータ)。 MongoDBの不正なデータは例外をスローするので、MongoDBはデータが正しいと確信しています。

+0

ありがとう。 「MongoDBのデータが間違っていると例外が発生するので、MongoDBはデータが正しいと確信している」これは覚えておくと便利です。 – Ankur

関連する問題