Как динамически добавлять документ в коллекцию?

#javascript #mongodb #mongoose

Вопрос:

Я работаю над системой бухгалтерского учета и хочу, чтобы пользователь создавал учетные записи в плане счетов динамически, и всякий раз, когда создается новая учетная запись, приложение создает новую коллекцию для этой учетной записи. Вот пример:

     const account = new Chart({
    name: accountName,
    category: accountCategory
});
 

Теперь учетная запись создана и добавлена в коллекцию диаграмм, но мне нужно создать коллекцию для этой учетной записи, я попытался вызвать новый метод для создания этой коллекции, и он работает следующим образом

 const createModel = (accountName)=>{
const newModel = mongoose.model(accountName, ledgerSchema);
}
 

Он создает модель, я могу добавить к ней документ сразу же после его создания, как это:

 const createModel = (accountName)=>{
const newModel = mongoose.model(accountName, ledgerSchema);
const record = new accountName({
some_value: 100
});
record.save();
}
 

Проблема в том, что я не могу создавать какие-либо документы и добавлять их в эту модель впоследствии, это работает только тогда, когда я объявляю и создаю модель, но после этого, если бы я попытался написать:

 const record = new accountName({
some_value: 100
});
record.save();
}
 

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

Ответ №1:

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