2

私はmongoexportを使用してコレクションをjsonファイルにエクスポートしました(以下のスクリプト)。

mongoexport -d db1 -c user --out /root/user_130226.json

タイプ「NumberLong」のパラメーターは「NumberLong」という単語なしで保存されていることがわかりました。そのため、mongoimportを使用すると、「NumberLong」という単語も欠落しています。

mongodumpとmongorestoreを使用する場合も同じです。

例:

ソース :

>> "cd" : NumberLong(1361862291)

出力して新しいコレクションにインポート:

>> "cd" : 1361862291

ただし、引用符が括弧()で囲まれたNumberLongの場合は、それに応じてエクスポートおよびインポートされます。

例:

"u4":NumberLong( "111018951303058")、

質問:

1.「NumberLong」という単語がエクスポートされていないかどうかは重要ですか?

2. NumberLongを引用符なしで保存するのは正しいですか?

よろしくお願いします。

4

2 に答える 2

2
  1. 引用符なしで NumberLong を保存するのは正しいですか?

数字の長さによってはMongoの挙動のようです。異なる長さの数値で解析してさらにテストしました。

  1. 44 - 引用なし >> NumberLong(44),
  2. 1338585352 - 引用なし >> NumberLong(1338585352),
  3. 13385853520 - 引用を追加 >> "NumberLong("13385853520")
  1. 「NumberLong」という単語がエクスポートされていなくても問題はありませんか?

引用符の有無は正しいので、Mongoの動作です。したがって、mongoexport/mongodump を使用してエクスポートする場合も NumberLong() は削除され、正しいと見なされます。

于 2013-02-27T04:21:33.633 に答える
0
  1. 「NumberLong」という単語がエクスポートされていないかどうかは重要ですか?

よろしい、それはあなたにとって重要ですか?

これがドンである理由mmongoexportは、BSONとは異なり、JSONにはBSONのような高度なオブジェクトを表現する機能がないためNumberLongです。これを念頭に置いて、それらは単に取り除かれます。

このファイルをMongoDBにインポートして戻す場合は、オブジェクトが失われるため、問題になる可能性があります。

  1. 引用なしでNumberLongを保存するのは正しいですか?

はい、NumberLong唯一のパラメータとして正の整数を取ることができます。

于 2013-02-26T12:09:59.373 に答える