在集合中插入多个条目

时间:2019-07-18 18:34:23

标签: javascript node.js mongodb

我正在尝试为输入的数量创建递增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

1 个答案:

答案 0 :(得分:0)

您要突变controlNumber.controlNumber。而是创建一个新对象以插入:

const toInsert = Object.assign({}, controlNumber, { controlNumber: i });
db.controlNumber.insert(toInsert)

使用async/await或承诺处理异步调用也很值得。如果您进行await db.controlNumber.insert(controlNumber),就不会遇到任何问题,因为在继续下一个文档之前,它会等待文档完全插入。