DEV Community

Avinash Maurya
Avinash Maurya

Posted on

CRUD in GraphQL MongoDB

CRUD(Create, Read, Update, Delete) operations in GraphQL, MongoDB, and PostgreSQL (using pg-promise) based on the typical SQL employees table.

GraphQL:

  1. Create (Mutation):
mutation {
  createEmployee(input: { name: "John Doe", department: "IT", hireDate: "2022-03-01" }) {
    id
    name
    department
    hireDate
  }
}
Enter fullscreen mode Exit fullscreen mode
  1. Read (Query):
query {
  employees {
    id
    name
    department
    hireDate
  }
}
Enter fullscreen mode Exit fullscreen mode
  1. Update (Mutation):
mutation {
  updateEmployee(id: "123", input: { name: "Updated Name" }) {
    id
    name
    department
    hireDate
  }
}
Enter fullscreen mode Exit fullscreen mode
  1. Delete (Mutation):
mutation {
  deleteEmployee(id: "123") {
    id
    name
    department
    hireDate
  }
}
Enter fullscreen mode Exit fullscreen mode

MongoDB:

// Assuming you have a MongoDB connection and a collection named 'employees'

// Create (Insert)
db.employees.insertOne({
  name: "John Doe",
  department: "IT",
  hireDate: new Date("2022-03-01")
});

// Read (Find)
const allEmployees = db.employees.find().toArray();

// Update (UpdateOne)
db.employees.updateOne(
  { _id: ObjectId("employee_id_here") },
  { $set: { name: "Updated Name" } }
);

// Delete (DeleteOne)
db.employees.deleteOne({ _id: ObjectId("employee_id_here") });
Enter fullscreen mode Exit fullscreen mode

PostgreSQL (pg-promise):

// Assuming you have a pg-promise connection and a table named 'employees'

// Create (Insert)
const newEmployee = await db.one(
  'INSERT INTO employees(name, department, hire_date) VALUES($1, $2, $3) RETURNING *',
  ["John Doe", "IT", new Date("2022-03-01")]
);

// Read (Select)
const allEmployees = await db.any('SELECT * FROM employees');

// Update (Update)
const updatedEmployee = await db.one(
  'UPDATE employees SET name = $1 WHERE id = $2 RETURNING *',
  ["Updated Name", 123]
);

// Delete (Delete)
const deletedEmployee = await db.one(
  'DELETE FROM employees WHERE id = $1 RETURNING *',
  [123]
);
Enter fullscreen mode Exit fullscreen mode

These examples demonstrate basic CRUD operations in GraphQL, MongoDB, and PostgreSQL. Adapt the queries and mutations based on your actual GraphQL schema and database schema. Additionally, ensure you have proper error handling and input validation in your actual implementation.

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

The best way to debug slow web pages cover image

The best way to debug slow web pages

Tools like Page Speed Insights and Google Lighthouse are great for providing advice for front end performance issues. But what these tools can’t do, is evaluate performance across your entire stack of distributed services and applications.

Watch video

πŸ‘‹ Kindness is contagious

Please leave a ❀️ or a friendly comment on this post if you found it helpful!

Okay