www/apps/resources/app/data-model-repository-reference/methods/delete/page.mdx
import { TypeList } from "docs-ui"
export const metadata = {
title: delete Method - Data Model Repository Reference,
}
The delete method of a data model repository deletes one or more records of the data model.
This reference assumes you've already resolved the data model repository, as explained in the Data Model Repository Reference documentation.
</Note>delete Parametersobject",
name: "filters",
description: "The filters to select the records to delete. The keys are the property names of the data model, and the values are the values to filter by.",
required: true,
}
]}
sectionTitle="delete Parameters"
/>As of Medusa v2.11.0, MikroORM dependencies are included in the @medusajs/framework package. If you're using an older version of Medusa, change the import statement to @mikro-orm/knex.
import {
InjectTransactionManager,
MedusaContext,
MedusaService,
} from "@medusajs/framework/utils"
import { Context, InferTypeOf, DAL } from "@medusajs/framework/types"
import { EntityManager } from "@medusajs/framework/mikro-orm/knex"
import Post from "./models/post"
class BlogModuleService extends MedusaService({
Post,
}){
// ...
@InjectTransactionManager()
protected async doSomething_(
id: string,
@MedusaContext() sharedContext?: Context<EntityManager>
): Promise<any> {
const deletedIds = await this.postRepository_.delete({
id,
})
return deletedIds
}
@InjectManager()
async doSomething(
id: string,
@MedusaContext() sharedContext?: Context<EntityManager>
): Promise<any> {
return await this.doSomething_(id, sharedContext)
}
}
The delete method accepts an object of filters to select the records to delete.
In the example above, you pass an object with the id property to delete a record by its ID.
The method returns an array of strings, each representing the ID of a deleted record.
import {
InjectTransactionManager,
MedusaContext,
MedusaService,
} from "@medusajs/framework/utils"
import { Context, InferTypeOf, DAL } from "@medusajs/framework/types"
import { EntityManager } from "@medusajs/framework/mikro-orm/knex"
import Post from "./models/post"
class BlogModuleService extends MedusaService({
Post,
}){
// ...
@InjectTransactionManager()
protected async doSomething_(
id: string,
@MedusaContext() sharedContext?: Context<EntityManager>
): Promise<any> {
const deletedIds = await this.postRepository_.delete({
title: "My Post",
})
return deletedIds
}
@InjectManager()
async doSomething(
id: string,
@MedusaContext() sharedContext?: Context<EntityManager>
): Promise<any> {
return await this.doSomething_(id, sharedContext)
}
}
Since the delete method accepts an object of filters, you can pass any property of the data model as a filter.
In the example above, you pass an object with the title property to delete all records with that title.
Find examples of different filters in the Filter Records documentation.
</Note>The method returns an array of strings, each representing the ID of a deleted record.