Ошибка приведения к массиву для значения при импорте CSV в коллекцию mon go - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь загрузить CSV в коллекцию mongodb, все поля загружаются, кроме одного, и я получаю эту ошибку, я думаю, это из-за двойного инвертирования "", которое вставляется само собой. Пожалуйста, проверьте ошибку ниже

 error: Error [ValidationError]: Order validation failed: totalOrder: Cast to Array failed for value "[{"tradeCopies":10,"freeCopies":0,"institutionalCopies":0,"publicationCode":"TOI","publicationName":"Times Of India","editionName":"chennai City","productCode":"TCE1","subscriptionCopies":0},{"tradeCopies":25,"freeCopies":0,"institutionalCopies":0,"publicationCode":"ET","publicationName":"Econimic Times","editionName":"chennai City","productCode":"ECE1","subscriptionCopies":0},{"tradeCopies":10,"freeCopies":0,"institutionalCopies":0,"publicationCode":"ETW","publicationName":"Econimic Times Wealth","editionName":"chennai City","productCode":"ECEW1","subscriptionCopies":0}]" at path "totalOrder"

Ниже приведена логика c в nodejs, которую я использую для загрузки CSV. Я не публикую завершенный код, я вызываю insertToOrderCSV (), используя cron

function insertToOrderCSV() {
    return new Promise(function (res, rej) {
        try {
            if (fs.existsSync(basepath, 'orders.csv')) {
                let veninsertdata = []
                console.log("The file exists.");
                fs.createReadStream(path.join(basepath, 'orders.csv'))
                    .pipe(csv())
                    .on('data', (row) => {
                        console.log('orders crom import', row);
                        let orders = {};
                        orders.vendorId = row['vendorId'];
                        orders.dealerId = row['dealerId'];
                        orders.frequency = row['frequency'];
                        orders.totalOrder = row['totalOrder'];
                        veninsertdata.push(orders);
                   })
                    .on('end', () => {
                    console.log('CSV file successfully processed', veninsertdata);
                     Order.insertMany(veninsertdata)
                            .then(function (docs, err) {
                                console.log('success', docs);
                                console.log('err', err);
                       res({ 'docs': docs, 'err': err });
                                //response.json(docs);
                            })
                            .catch(function (err) {
                                // response.status(500).send(err);
                                res({ 'error': err });
                                //console.log('errerr',err);
                            });
                    });

totalOrder is Аргумент arrayObject ниже представляет собой пример заголовка totalOrder. Имя: totalOrder значение в заголовке totalOrder равно

[{"tradeCopies":10,"freeCopies":0,"institutionalCopies":0,"publicationCode":"TOI","publicationName":"Times Of India","editionName":"chennai City","productCode":"TCE1","subscriptionCopies":0},{"tradeCopies":25,"freeCopies":0,"institutionalCopies":0,"publicationCode":"ET","publicationName":"Econimic Times","editionName":"chennai City","productCode":"ECE1","subscriptionCopies":0},{"tradeCopies":10,"freeCopies":0,"institutionalCopies":0,"publicationCode":"ETW","publicationName":"Econimic Times Wealth","editionName":"chennai City","productCode":"ECEW1","subscriptionCopies":0}]

. Все остальные заголовки вставляются, поскольку они имеют отдельные значения, но когда дело доходит до totalOrder, то в arrayObject внутри моей схемы goose. Как я могу справиться с этим ??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...