`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]