Создание объектов в модели. js, NodeJs - PullRequest
1 голос
/ 24 апреля 2020

В моей модели. js (используя mon goose), я изначально создаю 40 объектов в модели. js, которые должны использоваться во всей программе. Никакая другая функция ни в одном файле не создает больше объектов, а только обновляет существующие.

Моя модель. js

var TicketSchema =  mongoose.model('Tickets', TicketSchema);

for(let i = 1;i<=40;i++)
{
    var new_ticket = new TicketSchema({ticket_number:i});
    new_ticket.save(function(err, ticket) {
   });
}

Проблема в том, что я заметил, что после некоторого количества объектов было гораздо больше, чем 40 время. Я хотел знать, если модель. js выполняется более одного раза во время выполнения или это просто из-за повторного вызова npm run start и затем закрытия сервера?

Также есть ли лучший способ создания изначально объекты, которые должны использоваться для всей программы?

1 Ответ

1 голос
/ 24 апреля 2020

Он будет создавать 40 новых документов при каждом запуске сервера. Вы можете использовать эту функцию, чтобы избежать создания, если записи уже существуют, путем проверки количества.

const TicketModel =  mongoose.model('Tickets', TicketSchema);

const insertTicketNumber = async () => {
  try {
    const count = await TicketModel.countDocuments({});
    if (count) return;
    await TicketModel.create(
      [...Array(40).keys()]
        .map(i => i + 1)
        .map(number => ({ ticket_number: number }))
    );
  } catch (error) {
    console.log(error.message);
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...