CSV-файл mongoimport, содержащий столбец со значениями массива
Я новичок в MongoDB и пытаюсь импортировать CSV-файл, содержащий данные программы, в MongoDB. Одно из полей в CSV-файле (теги) содержит список значений как таковой:
Когда я импортирую это в mongoDB, все поле появляется в виде строки:
"tags": "[ethics.philosophy.plato]"
Есть ли способ, которым я могу редактировать это поле (либо в команде импорта, либо манипулировать данными в базе данных) так, чтобы поле тега представляло собой массив значений, подобных этому:
"tags": ["этика", "философия", "платон"]
Я просмотрел онлайн и пролистал документацию mongoDB mongoimport, но не нашел подходящего решения. Заранее спасибо!
1 ответ
Решение
После импорта CSV выполните эту команду.
db.whatevercollection.find().snapshot().forEach(function (el) {
el.tags = el.tags.split('.');
db.whatevercollection.save(el);
});
Изменить: ваш CSV содержит квадратные скобки.
db.whatevercollection.find().snapshot().forEach(function (el) {
el.tags=el.tags.substring(1,el.tags.length-1);
el.tags = el.tags.split('.');
db.whatevercollection.save(el);
});