UNPKG

mongodb-connection-lib

Version:

A comprehensive MongoDB connection library with CRUD operations, connection pooling, and model abstraction

74 lines (61 loc) 2.03 kB
const DatabaseService = require("../src/services/DatabaseService"); const User = require("../src/models/User"); async function main() { try { // Connect to database await DatabaseService.connect(); // Health check const health = await DatabaseService.healthCheck(); console.log("Health check:", health); // Create a new user const userData = { name: "John Doe", email: "john.doe@example.com", age: 30, }; const user = new User(userData); await user.save(); console.log("User created:", user); // Find user by email const foundUser = await User.findByEmail("john.doe@example.com"); console.log("Found user:", foundUser); // Update user await User.updateById(foundUser._id, { age: 31, name: "John Updated" }); console.log("User updated"); // Find all users const allUsers = await User.findAll(); console.log("All users:", allUsers); // Direct database operations const directResult = await DatabaseService.find("users", { age: { $gte: 25 }, }); console.log("Users 25 and older:", directResult); // Aggregation example const aggregationPipeline = [ { $match: { age: { $gte: 18 } } }, { $group: { _id: null, averageAge: { $avg: "$age" } } }, ]; const avgAge = await DatabaseService.aggregate( "users", aggregationPipeline ); console.log("Average age:", avgAge); } catch (error) { console.error("Error in main function:", error); } finally { // Disconnect from database await DatabaseService.disconnect(); } } // Handle graceful shutdown process.on("SIGINT", async () => { console.log("Received SIGINT, shutting down gracefully..."); await DatabaseService.disconnect(); process.exit(0); }); process.on("SIGTERM", async () => { console.log("Received SIGTERM, shutting down gracefully..."); await DatabaseService.disconnect(); process.exit(0); }); main();