# Utils Discover all available utils. ## `defineMongooseModel` This function creates a new Mongoose model with schema. Example usage: ::code-group ```ts [named parameters] export const User = defineMongooseModel({ name: 'User', schema: { email: { type: 'string', required: true, unique: true, }, }, options: { }, hooks(schema) { }, }) ``` ```ts [positional parameters] import { defineMongooseModel } from '#nuxt/mongoose' export const User = defineMongooseModel('User', { email: { type: 'string', required: true, unique: true, }, }, { }, (schema) => { }) ``` :: | **Key** | **Type** | **Require** | **Description** | | ---------------------------- | ----------- | ----------- | ----- | | `name` | `string` | true | Name of Model | | `schema` | [`SchemaDefinition`](https://mongoosejs.com/docs/schematypes.html) | true | Schema Definition of Model | | `options` | [`SchemaOptions`](https://mongoosejs.com/docs/guide.html#options) | false | Schema Options for Model | | `hooks` | [`(schema: Schema) => void`](https://mongoosejs.com/docs/middleware.html) | false | Schema Hooks Function to customize Model | ::alert you can access the default connection with importing it from mongoose: :: ``` import { connection } from 'mongoose' ``` ## `defineMongooseConnection` This function creates a new Mongoose connection. - `nuxt-mongoose` provides a default connection for you, it auto-register a plugin in nitro, so you don't need to use this function unless you want to create a new connection. more info [here](https://github.com/arashsheyda/nuxt-mongoose/blob/main/src/runtime/server/plugins/mongoose.db.ts). Example usage: ```ts import { defineMongooseConnection } from '#nuxt/mongoose' export const connection = defineMongooseConnection('mongodb://127.0.0.1/nuxt-mongoose') ```