@medusajs/query
Documentation | Website
Building blocks for digital commerce
Query and Remote Joiner for Medusa: the engine behind Query, which retrieves data across modules and their links in a single call. You don't import this package directly in a Medusa application; resolve Query from the Medusa container with ContainerRegistrationKeys.QUERY ("query"), or use useQueryGraphStep from @medusajs/medusa/core-flows inside workflows.
At a glance
| Package | @medusajs/query |
| Type | Core library |
| Import from | Resolved from the container as ContainerRegistrationKeys.QUERY ("query") |
Features
query.graph()to retrieve records of a data model and their linked records from other modules.query.index()to filter across linked modules using the Index Module.query.search()to run search queries through the Search Module.RemoteJoiner, which resolves and joins data across module services.
Installation
No separate installation is needed in a Medusa application. It's installed with @medusajs/framework through @medusajs/modules-sdk.
Usage
import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http"
import { ContainerRegistrationKeys } from "@medusajs/framework/utils"
export const GET = async (req: MedusaRequest, res: MedusaResponse) => {
const query = req.scope.resolve(ContainerRegistrationKeys.QUERY)
const { data: products } = await query.graph({
entity: "product",
fields: ["id", "title", "variants.*"],
})
res.json({ products })
}