`NumberLong`型のデータを持つコレクションです:

> db.hc__whois.findOne();
{
       "__id" : NumberLong(3000001),
       "startIpInLong" : NumberLong(1543503872),
       "endIpInLong" : NumberLong(1544552447),
       "name" : "ap-net-1",
      //...
 }

`mongoexport`でエクスポートしてください:

サーバー1

$ mongoexport -d mydb -c hc__whois -o whois.json

whois.json

{
  "__id" : { "$numberLong" : "3000001" },
  "startIpInLong" : { "$numberLong" : "1543503872" },
  "endIpInLong" : { "$numberLong" : "1544552447"
}

1.問題

エクスポートされたデータ

whois.json`を別のサーバにコピーし、

mongoexport`でインポートします。

サーバー2

$ mongoimport -d mydb -c hc__whois --file whois.json

インポートされたデータが奇妙に見え、余分な `$ numberLong`が挿入され、long値はもう検索できません。

> db.hc__whois.findOne();
{
        "__id" : {
                "$numberLong" : "3000001"
        },
        "startIpInLong" : {
                "$numberLong" : "1543503872"
        },
        "endIpInLong" : {
                "$numberLong" : "1544552447"
        },
        "name" : "ap-net-1",
       //...
}


mongoimport`が

$ numberLong`をlong値に変換しなかったのはなぜですか?

2.解決策

クイックチェックの後、server1が

MongoDB v2.6.4

を使用してデータをエクスポートし、

MongoDB v2.4.3

がインストールされているserver2にデータをインポートしようとしていることを確認します。

{空} 1。このガイドを参照してhttp://docs.mongodb.org/manual/release-notes/2.6-upgrade/2.6-upgrade/[2.6へのMongoDBのアップグレード]を実行すると、MongoDBプロセスを停止し、 `$ mongo \ bin`フォルダを置き換えます最新のもので。

{空} 2。 server2をMongoDB 2.6にアップグレードしたら、もう一度インポートしてみてください。

サーバー2

$ mongoimport -d mydb -c hc__whois --file whois.json

> db.hc__whois.findOne();
{
        "__id" : 3000001,
        "startIpInLong" : 1543503872,
        "endIpInLong" : 1544552447,
        "name" : "ap-net-1"
       //...
}

完了しました。

リンク://タグ/mongoimport/[mongoimport]