mongoimport не может импортировать $ numberLong

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.

server2

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

Импортированные данные выглядят странно, добавлен дополнительный$numberLong, а поиск по длинному значению больше не выполняется.

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

Почемуmongoimport не преобразовал$numberLong в длинное значение?

2. Решение

После быстрой проверки выясните, что server1 используетMongoDB v2.6.4 для экспорта данных, и попробуйте импортировать данные на server2, где установленMongoDB v2.4.3.

To fix it, убедитесь, что и server1, и server2 используют одну и ту же версию MongoDB, похоже, экспортированное значение$numberLong поддерживается только в версии 2.6.x.

1. Обратитесь к этому руководству поupgrade MongoDB to 2.6, это просто, просто остановите процесс MongoDB и замените папку$mongoin последней.

2. После обновления server2 до MongoDB 2.6 попробуйте импортировать его снова.

server2

$ mongoimport -d mydb -c hc_whois --file whois.json
> db.hc_whois.findOne();
{
        "_id" : 3000001,
        "startIpInLong" : 1543503872,
        "endIpInLong" : 1544552447,
        "name" : "ap-net-1"
        //...
}

Готово.

Related