Por exemplo, este código resulta em uma coleção chamada "dados" sendo criada
var Dataset = mongoose.model('data', dataSchema);
E esse código resulta em uma coleção chamada "usuários" sendo criada
var User = mongoose.model('user', dataSchema);
obrigado
Respostas:
O Mongoose está tentando ser inteligente tornando o nome de sua coleção plural. No entanto, você pode forçá-lo a ser o que quiser:
var dataSchema = new Schema({..}, { collection: 'data' })
fonte
A estrutura da API de mongoose.model é esta:
O que o mongoose faz é isso, quando nenhum argumento de coleção é passado, o Mongoose produz um nome de coleção pluralizando o nome do modelo. Se você não gostar desse comportamento, passe um nome de coleção ou defina a opção de nome de coleção de esquemas.
Exemplo:
ou
ou
fonte
A partir do mongoose 5.x, você pode desativá-lo completamente:
fonte
Você pode simplesmente adicionar uma string como um terceiro argumento para definir o nome real da coleção. Ampliando seus exemplos, para manter os nomes como
data
euser
respectivamente:fonte
Você pode adicionar o nome da coleção como terceiro parâmetro. Veja o exemplo usando Typescript:
fonte
Adicionando a linha
mongoose.pluralize(null)
em seu arquivo Mongoose impedirá a pluralização do nome da coleção. Você não precisa adicionar esta linha aos seus arquivos de modelo.Como visto aqui .
fonte
No final da definição de seu esquema na próxima linha, use este código
Supondo que seu estado é o que você deseja usar em seu banco de dados para evitar s como estados
Clique no link para ver a imagem corretamente
fonte
O Mongoose compila um modelo para você quando você executa este comando
O primeiro argumento é o nome singular da coleção para a qual seu modelo se destina. O Mongoose procura automaticamente a versão plural em minúsculas do nome do seu modelo. Assim, para o exemplo acima, o filho do modelo é para a coleção de filhos no banco de dados.
Observação: a
.model()
função faz uma cópia do esquema. Certifique-se de adicionar tudo o que deseja no esquema, incluindo ganchos, antes de chamar.model()
!fonte