Например, этот код приводит к созданию коллекции под названием «данные».
var Dataset = mongoose.model('data', dataSchema);
И этот код приводит к созданию коллекции под названием "пользователи".
var User = mongoose.model('user', dataSchema);
Спасибо
Ответы:
Mongoose пытается быть умным, делая имя вашей коллекции множественным числом. Однако вы можете заставить его быть тем, что хотите:
var dataSchema = new Schema({..}, { collection: 'data' })
источник
Структура API mongoose.model такова:
Мангуст делает следующее: если аргумент коллекции не передается, Mongoose создает имя коллекции, формируя имя модели во множественном числе. Если вам не нравится такое поведение, передайте имя коллекции или установите параметр имени коллекции схем.
Пример:
или
или
источник
Начиная с mongoose 5.x вы можете полностью отключить его:
источник
Вы можете просто добавить строку в качестве третьего аргумента, чтобы определить фактическое имя коллекции. Расширение ваших примеров, чтобы сохранить имена как
data
иuser
соответственно:источник
Вы можете добавить название коллекции в качестве третьего параметра. См. Пример с использованием Typescript:
источник
Добавление строки
mongoose.pluralize(null)
в ваш файл Mongoose предотвратит плюрализацию имени коллекции. Вам не нужно добавлять эту строку в файлы вашей модели.Как видно здесь .
источник
В конце определения вашей схемы в следующей строке Используйте этот код
Предполагая, что ваше состояние - это то, что вы хотите использовать в своей базе данных, чтобы избежать s как состояний
Щелкните ссылку, чтобы просмотреть изображение правильно
источник
Когда вы запускаете эту команду, Mongoose компилирует для вас модель
Первый аргумент - это единственное имя коллекции, для которой предназначена ваша модель. Mongoose автоматически ищет версию названия вашей модели во множественном числе в нижнем регистре .Таким образом, в приведенном выше примере дочерняя модель предназначена для дочерней коллекции в базе данных.
Примечание:
.model()
функция делает копию схемы. Перед вызовом убедитесь, что вы добавили в схему все, что хотите, включая хуки.model()
!источник