물품일괄수정 - PUT
localhost:3000/item/updatebatch
router.put('/updatebatch', upload.array("file"), async function(req, res, next)
: 모든 결과들이 file
이라는 이름아래에 배열형식으로 잡히게 된다.
const count = req.body.name.length;
: 일괄 수정할 항목의 개수를 name
의 개수로 잡는다.
const dbConn = await db.connect(DBURL);
const coll = dbConn.db(DBNAME).collection(ITEMCOLL);
let cnt = 0;
let obj = {
name : req.body.name[i],
content : req.body.content[i],
price : req.body.price[i],
quantity : req.body.quantity[i],
regdate : new Date(),
};
// req.files ==> []
// if(req.files[i]===null){
// console.log('null');
// }
if(typeof req.files[i] !== 'undefined'){
console.log('undefined'); // 파일첨부안했으면 'undefined' 뜸
obj.filename = req.files[i].originalname,
obj['filedata'] = req.files[i].buffer,
obj.filetype = req.files[i].mimetype,
obj.filesize = req.files[i].size
}
const result = await coll.updateOne( // updateMany는 같은걸 바꾸는것
// updateOne을 반복문을 돌려서 비슷한 모양을 만드는것.
{ _id : Number(req.body.code[i]) },
// code를 숫자로 바꿔야함
// 이런형태기 때문
// {
// code : [10060, 10061]
// name: [ 'vueper!!!', 'node!!!' ],
// content: [ '내용 slide', '내용 node' ],
// price: [ '456', '123' ],
// quantity: [ '654', '321' ]
// }
{$set: obj}
);
console.log(result);
// undefined
// {
// acknowledged: true,
// modifiedCount: 1,
// upsertedId: null,
// upsertedCount: 0,
// matchedCount: 1
// }
// undefined
// {
// acknowledged: true,
// modifiedCount: 1,
// upsertedId: null,
// upsertedCount: 0,
// matchedCount: 1
// }