2013-02-26 8 views
2

Я использовал mongoexport для экспорта коллекции в json-файл (скрипт, как показано ниже).NumberLong отсутствует, когда mongoexport to json file

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 без цитаты?

Спасибо в продвинутом состоянии.

ответ

2
  1. Правильно ли сохранить NumberLong без цитаты?

Это кажется, что это поведение Монго, в зависимости от длины числа. Дальнейшая проверка проводилась разборкой по разной длине.

  1. 44 - не цитата >> NumberLong (44),
  2. 1338585352 - не цитата >> NumberLong (1338585352),
  3. 13385853520 - не с Цитированием добавил >> "NumberLong (" 13385853520")
  1. имеет ли значение, если слово "NumberLong" не экспортируется?

Поскольку с или без цитаты правильные и это поведение Монго. Следовательно, NumberLong() будет удаляться при экспорте с использованием mongoexport/mongodump также должен считаться правильным.

0
  1. Имеет ли значение, если слово «NumberLong» не экспортируется?

Зависит, не имеет значения для вас?

Причина, по которой mmongoexport является доном, потому что, в отличие от BSON, JSON не имеет возможности выражать продвинутые объекты, такие как NumberLong, что BSON может; имея в виду, что они просто лишены.

Если вы собираетесь импортировать этот файл обратно в MongoDB, это может иметь значение для вас, поскольку объекты будут потеряны.

  1. Правильно ли сохранить NumberLong без кавычек?

Да, NumberLong может принять положительное целое число в качестве своего единственного параметра.

+0

Для # 1, я использовал mongodump для вывода в качестве BSON файла, но это тот же результат (как mongoimport), что NumberLong без кавычек «» отсутствует при использовании mongorestore импортировать обратно BSON к БД. Если «NumberLong с цитатой», то он может сбрасывать и восстанавливать правильно. – Cthoong

+0

'2. Правильно ли сохранить NumberLong без цитаты?' – Cthoong

+0

@Cthoong Если mongodump не хватает объектов, когда вы его реимпортируете, то что-то не так – Sammaye