#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:
Вы можете повторно использовать созданную модель до тех пор, пока соединение не будет открыто. В противном случае вам нужно снова создать новый экземпляр. См. Здесь для получения более подробной информации