我正在尝试为输入的数量创建递增1的条形码,并将每个条形码添加到MongoDB集合中。
我使用db.controlNumber.insert({controlNumber})
来做到这一点,我也使用
console.log(controlNumber)
查看我的结果。但是,在数据库中,递增的数字将达到最大值并输入多次,在console.log中显示递增的数字。
while (i < count) {
i++;
controlNumber.controlNumber = controlVar[0] + "-" + controlVar[1] + "-" +
controlVar[2] + "-" + controlVar[3] + "-000" + i;
db.controlNumber.insert(controlNumber);
console.log(controlNumber);
}
我希望我的mongoDB集合具有控制号(例如,如果用户需要5个控制号)
a-b-c-d-001 a-b-c-d-002 ... a-b-c-d-005
相反,它输入了5个
a-b-c-d-005
答案 0 :(得分:0)
您要突变controlNumber.controlNumber
。而是创建一个新对象以插入:
const toInsert = Object.assign({}, controlNumber, { controlNumber: i });
db.controlNumber.insert(toInsert)
使用async/await
或承诺处理异步调用也很值得。如果您进行await db.controlNumber.insert(controlNumber)
,就不会遇到任何问题,因为在继续下一个文档之前,它会等待文档完全插入。