Ошибка mogorestore CosmosDB: документ не содержит ключа осколка [duplicate]

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
4
задан maumercado 14 January 2015 в 00:06
поделиться

1 ответ

Утилита mongodump создает двоичный экспорт данных из MongoDB и сохраняет определения индексов и параметры сбора в metadata.json, связанные с каждой сбрасываемой базой данных. Данные индекса не занимают сколько-нибудь значительного места в вашей резервной копии и обычно будут использоваться mongorestore для повторного обеспечения индексов после того, как каждый из данных для каждой коллекции будет импортирован из дампа.

Если вы хотите во избежание создания каких-либо новых вторичных индексов после завершения восстановления mongorestore имеет опцию --noIndexRestore .

Примечание: индекс по умолчанию _id

инкрементно восстанавливает mongo db без восстановления индексов?

Параметр для --noIndexRestore применяется независимо от того, вы или нет восстановление в существующую базу данных. Если вы mongorestore в существующей базе данных с индексами, использующими параметр --noIndexRestore, новые индексы не будут добавлены, но существующие индексы будут по-прежнему обновляться по мере ввода данных.

Инкрементное резервное копирование & amp; восстановление действительно представляет собой отдельный вопрос, если у вас нет упрощенного варианта использования: вставка новых документов из последовательных дампов.

Как и в MongoDB 2.6, утилита mongorestore вставляет только документы (т. е. нет опций для обновлений / upserts). Вы можете использовать mongorestore для вставки нескольких дампов в существующую коллекцию, но любые документы, вызывающие повторяющиеся исключения ключей (например, _id), будут пропущены.

Обычно я ожидал, что инкрементное резервное копирование & amp; восстановление подразумевает дельта изменений (все вставки / обновления / удаления с момента предыдущего резервного копирования) и возможность повторного применения их к более старой копии одних и тех же данных. Чтобы получить инкрементное резервное копирование, вам понадобится история изменений данных, которые в случае MongoDB будут предоставлены журналом операций реплики [o3] .

10
ответ дан Stennie 19 August 2018 в 11:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: