Ответ 1
Я написал script, что я запускаю свои файлы, чтобы их дезинфицировать.
Сначала создайте эти два файла:
sanitize.sh
#!/usr/bin/env bash
DUMP_PATH=$1
for file in $( ls $DUMP_PATH | grep .*\.metadata\.json ); do
node remove-extraneous-keys-from-indexes.js $DUMP_PATH/$file
done
remove-extraneous-keys-from-indexes.js
const fs = require("fs");
const {promisify} = require("util");
const fileName = process.argv[2];
(async () => {
const text = await promisify(fs.readFile)(fileName, 'utf8')
const json = JSON.parse(text)
json.indexes = json.indexes.map(index => ({
v: index.v,
key: index.key,
name: index.name,
ns: index.ns
}))
await promisify(fs.writeFile)(fileName, JSON.stringify(json))
})()
затем запустите
$ chmod u+x sanitize.sh
$ ./sanitize.sh path/to/dump/folder
Затем, когда я запускаю mongorestore
, все в порядке.
ПРЕДУПРЕЖДЕНИЕ: этот script предполагает, что у вас установлена последняя версия node. Проверьте это, запустив node -v
. Это должно быть 8.6
или больше.