delete Method - Data Model Repository Reference
The delete method of a data model repository deletes one or more records of the data model.
Note: This reference assumes you've already resolved the data model repository, as explained in the Data Model Repository Reference documentation.
delete Parameters#
Loading...
Delete Record by ID#
Note: 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,
InjectManager,
} 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)
}
}
Parameters#
The delete method accepts an object of filters to select the records to delete.
In the example above, you pass an object with the property to delete a record by its ID.
Returns#
The method returns an array of strings, each representing the ID of a deleted record.
Delete Records by Filters#
import {
InjectTransactionManager,
MedusaContext,
MedusaService,
InjectManager,
} 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)
}
}
Parameters#
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.
Note: Find examples of different filters in the Filter Records documentation.
Returns#
The method returns an array of strings, each representing the ID of a deleted record.
Was this page helpful?