mongoimportは$ numberLongをインポートできません
`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]