Пакетная вставка mongodb - не работает Javascript - PullRequest
0 голосов
/ 10 июня 2019

Я хочу вставить кучу записей в коллекцию, но вместо документа за один раз я хочу сделать это как пакет, используя "insertMany ()".Я написал скрипт следующим образом:

var batch = [];
for (i=0; i<10; i++) { 
    names=["exam", "essay", "quiz"]; 
    for (j=0;j<3;j++) { 
        batch += '\n{ student : ' + i + ', type : "' + names[j] + '", score : ' + Math.round(Math.random()*100) + '}' ;
        if (mod i%3 == 0) {
            batch = batch.slice(0, batch.lenght(-1));
            db.scores.insertMany( batch )
            batch=[];
        }
    }
}

Приведенный выше код не работает.Есть две проблемы: во-первых, элемент массива окружен двойными кавычками, а во-вторых, «срез» не вступает в силу.

Нужна помощь в исправлении Javascript.

1 Ответ

0 голосов
/ 10 июня 2019

Здесь есть несколько проблем:

вокруг элемента массива есть двойные кавычки

batch += '\n{ student : ' + i + ', type : "' + names[j] + '", score : ' + Math.round(Math.random()*100) + '}' ;

Вы хотите создатьобъект, а не строка.batch = { student: i, type: names[j], score: ..} создаст для вас объект.

"срез" не вступает в силу

batch = batch.slice(0, batch.lenght(-1));

Вы ошиблись length, а length - это свойство, а не функция.batch.slice() скопирует массив (но вы сбрасываете его, так что он на самом деле не нужен).

...