mongodbにオブジェクトを挿入する前にオブジェクトの配列を検証しようとしています。バルク挿入前にDBですべてのデータを検証するmongoose/mongodb
私は何をしようとしていますが、与えられたprodCode
が有効なDBコードであるかないとname
が重複したりするかどうかをチェックし、私がしたい私は、一括挿入呼び出しを行う前に、
var data= { prodDetails:
[
{ measured: 'Liters',
name: 'A',
prodCode: '713',
status: true },
{ measured: 'Liters',
name: 'B',
prodCode: '713',
status: true },
{ measured: 'Liters',
name: 'C',
prodCode: '674',
status: true }
]
};
以下のような物を持って言うことができますされます私はnode
bluebird
約束を使用しています。
私はprodCode
var bulkOperations = {
bulkProdInsert: function (body) {
return new Promise(function (reslv, rej) {
if (body.prodDetails.length > 0) {
common_lg.getValueById(body, "typesProd", body.prodDetails[0].prodCode).then(bulkOperations.successCallback(reslv, rej, body)).catch(bulkOperations.errCallback(reslv, rej, body));
};
reslv();
});
},
successCallback: function (reslv, rej, body) {
return function (res) {
if (res) {
body.prodDetails.splice(0, 1);
if (body.prodDetails.length > 0) {
common_lg.getValueById(body, "typesProd", body.prodDetails[0].prodCode).then(bulkOperations.successCallback(reslv, rej, body)).catch(bulkOperations.errCallback(reslv, rej, body));
}
};
};
},
errCallback: function (reslv, rej, body) {
return function (err) {
body.prodDetails.splice(0, 1);
if (body.prodDetails.length > 0) {
common_lg.getValueById(body, "typesProd", body.prodDetails[0].prodCode).then(bulkOperations.successCallback(reslv, rej, body)).catch(bulkOperations.errCallback(reslv, rej, body));
};
};
}
};
を検証するために、次のコードを試してみましたが、私がやりたいすべてのオブジェクト/文書のname
とprodCode
が検証されたときにDBにすべてのオブジェクト/文書を挿入しています。
これを達成する方法。
ありがとう