Пытаясь добиться импорта CSV, поэтому я использую массовую вставку в NodeJ, используя MonggoseJ, и делюсь здесь фрагментом скрипта.
Описание:
Если я вставляю данные, используя 'model.save', проверка работает правильно для минимальной длины строки и уникального адреса электронной почты, ниже схемы и сценария для массовой вставки.
// User Schema.
{
"title": {type: String, enum:["Mr", "Ms", "Mrs","Miss","Mstr"]},
"firstName": {
type: String,
trim: true,
required: true,
minlength: 2
},
"lastName": {
type: String,
trim: true,
required: true,
minlength: 2
},
"gender": {type: String, enum: ["Male","Female","Other"]},
"email" : {type: String, unique: true, required: true, trim: true}
}
Скрипт: Обещание, которое будет выполнять для массовой вставки
return new Promise((resolve, reject) => {
var bulk = User.collection.initializeOrderedBulkOp();
let _oUserOne =new User({
"title": Mr,
"firstName" : "A",
"lastName" : "S",
"gender" : "Male",
"email" : "xxx@domain.com"
})
let _oUserTwo =new User({
"title": Mr,
"firstName" : "A",
"lastName" : "S",
"gender" : "Male",
"email" : "xxx@domain.com" // Duplicate entry of email
})
bulk.insert(_oUserOne);
bulk.insert(_oUserTwo);
bulk.execute(function (err, r) {
if (err) {
console.error("Error in bulk insert\n", err);
resolve({ result: r, error: err });
}
console.log("OK: Inserted successfully!");
resolve({ result: r, error: null });
});
});