Почему мангуста всегда добавляет s в конец имени моей коллекции

Например, этот код приводит к созданию коллекции под названием «datas»

var Dataset = mongoose.model('data', dataSchema); 

И этот код приводит к созданию коллекции под названием «пользователи»

 var User = mongoose.model('user', dataSchema); 

благодаря

Мангуст пытается быть умным. Однако вы можете заставить его быть тем, кем хотите:

var dataSchema = new Schema({..}, { collection: 'data' })

Структура API mongoose.model такова:

 Mongoose#model(name, [schema], [collection], [skipInit]) 

Что такое мангуста, так это то, что, когда аргумент коллекции не передан, Mongoose создает имя коллекции, плюризуя имя модели. Если вам не нравится это поведение, либо передайте имя коллекции, либо укажите опцию имени коллекции схем.

Пример:

 var schema = new Schema({ name: String }, { collection: 'actor' }); 

или

 schema.set('collection', 'actor'); 

или

 var collectionName = 'actor' var M = mongoose.model('Actor', schema, collectionName); 

Вы можете просто добавить строку в качестве третьего аргумента, чтобы определить фактическое имя коллекции. Расширяя ваши примеры, чтобы сохранить имена как data и user соответственно:

 var Dataset = mongoose.model('data', dataSchema, 'data'); var User = mongoose.model('user', dataSchema, 'user'); 

Вы можете добавить имя коллекции в качестве третьего параметра. См. Пример с помощью TypScript:

 import DataAccess = require('../DataAccess'); import IUser = require("../../Models/Interfaces/IUser"); var mongoose = DataAccess.mongooseInstance; var mongooseConnection = DataAccess.mongooseConnection; class UserSchema { static get schema () { var schema = mongoose.Schema({ _id : { type: String }, Name: { type: String, required: true }, Age: { type: Number, required: true } }); return schema; } } var schema:any = mongooseConnection.model("User", UserSchema.schema,"User"); export = schema; 
  • Может ли функция AWS Lambda вызвать другую
  • Веб-сайты Windows Azure переопределяют мои страницы ошибок 404 и 500 в моем приложении node.js
  • Grunt в Windows 8: «grunt» не распознается
  • Как заставить Fish shell и NVM установить вместе с Homebrew для совместной работы?
  • В мокко-тестировании при вызове асинхронной функции, как избежать таймаута Ошибка: превышение тайм-аута в 2000 мс
  • Есть ли способ автоматически создать файл package.json для проектов Node.js
  • дочерний процесс node.js - разница между spawn & fork
  • Обновление Mongoose без обратного вызова
  • Node.js, невозможно открыть файлы. Ошибка: ENOENT, stat './path/to/file'
  • В чем разница между зависимостями, devDependencies и peerDependencies в файле npm package.json?
  • Использовать переменную в Jade include
  • Давайте будем гением компьютера.