Files
nuxt-mongoose/docs/content/1.docs/2.api/1.utils.md
2023-10-19 11:18:11 -06:00

75 lines
1.9 KiB
Markdown

# 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<T>) => 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')
```