passiondb
v1.0.0
Published
MongoDB model layer for the Passion platform
Readme
passiondb
MongoDB model layer for the Passion platform. Mirrors the architecture of payservedb.
Installation
npm install passiondbOr if using locally (linked package):
npm install ../path/to/passiondbEnvironment Variables
Copy .env.example to .env and fill in your MongoDB credentials:
MONGODB_USER=
MONGODB_PASSWORD=
MONGODB_HOST=
MONGODB_PORT=Usage
Full connection (all models)
const passiondb = require("passiondb");
await passiondb.connectToMongoDB(
"passion_main", // dbName
true, // secured (false = no auth)
"user", // username
"pass", // password
"127.0.0.1", // host
27017 // port
);
const user = await passiondb.User.findById(id);Selective model loading (microservices)
Only loads the models you need — keeps memory lean for smaller services.
const passiondb = require("passiondb");
const { connectToMongoDB } = passiondb.initializeService(["User"]);
await connectToMongoDB("passion_main", true, "user", "pass", "127.0.0.1", 27017);
const user = await passiondb.User.findOne({ email: "[email protected]" });Secondary database connection
Use this when you have a separate DB (e.g. passion_analytics) with its own models.
await passiondb.connectToPassionSecondaryDB(
"passion_secondary",
true,
"user",
"pass",
"127.0.0.1",
27017
);
// passiondb.secondary.MySecondaryModel is now availableDynamic DB switching
const conn = await passiondb.switchDB("passion_archive");
const MyModel = await passiondb.getModelFromDB(conn, "User", UserSchema);Adding Models
- Create your model file in
src/models/my_model.js - Register it in the
modelsobject inindex.js:
const models = {
User: require("./src/models/user"),
MyModel: require("./src/models/my_model"), // ← add here
};For secondary DB models, add to secondaryModelDefs instead.
