🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

mongo-query-utils

Package Overview
Dependencies
Maintainers
0
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongo-query-utils

A simple mongo query builder for node.js

1.2.0
latest
Source
npm
Version published
Weekly downloads
4
300%
Maintainers
0
Weekly downloads
 
Created
Source

🔒 mongo-query-utils

A simple mongo query builder for node.js for Node/Express.js.

🚀 Features

Create Documents – Create a new document and save to database
Fetch Documents – Collect all or necessary documents from the database
Update Documents – Update all or specific document(s) from the database
Delete Documents – Remove documents from the database
Join Documents – Join documents from different tables

📦 Installation

npm install mongo-query-utils

🚀 Usage

1️⃣ Import the Module

const {
  fetchAll,
  fetchOne,
  generate,
  fetchById,
  patchOneAndUpdate,
  patchByIdAndUpdate,
  patchOne,
  patchMany,
  replaceOne,
  removeOne,
  removeMany,
  summarize,
} = require("mongo-query-utils");

Create a New Document

const Table = require("your-schema");
const document = {
  first_name: "Sample",
  last_name: "Test",
};
const newDoc = await generate(document, Table);
console.log(Table);

🔍 Fetch a Single Document

Fetch a single document based on the provided query.

const query = { email: "user@example.com" };
const user = await fetchOne(query, User);
console.log(user); // { _id: 123, email: "user@example.com", name: "John Doe" }

🆔 Fetch Document by ID

Retrieve a document using its unique _id.

const id = "60d5f9e8f1c2b4a3d8f5e7c6";
const document = await fetchById(id, Table);
console.log(document);

✏️ Update Documents

Update the first document that matches the query.

Update a Single Document

const query = { email: "user@example.com" };
const update = { name: "Updated Name" };
const updatedDoc = await patchOneAndUpdate(query, update, User);
console.log(updatedDoc);

Update a Document by ID

const id = "60d5f9e8f1c2b4a3d8f5e7c6";
const update = { status: "Active" };
const updatedDoc = await patchByIdAndUpdate(id, update, Table);
console.log(updatedDoc);

Update Multiple Documents

const query = { status: "Pending" };
const update = { status: "Completed" };
const updatedDocs = await patchMany(query, update, Table);
console.log(updatedDocs);

🔄 Replace a Document

Replace an entire document with new data.

const query = { email: "user@example.com" };
const newDocument = { email: "user@example.com", name: "New Name" };
const replacedDoc = await replaceOne(query, newDocument, User);
console.log(replacedDoc);

🗑️ Delete Documents

Delete a Single Document

const query = { email: "user@example.com" };
const deletedDoc = await removeOne(query, User);
console.log(deletedDoc);

Delete Multiple Documents

const query = { status: "Inactive" };
const deletedDocs = await removeMany(query, User);
console.log(deletedDocs);

🔗 Join Collections

Join documents from two collections using $lookup.

const pipeline = [
  {
    $match: {_id: 'sample_id'}
    $lookup: {
      from: "orders",        // Collection to join
      localField: "_id",      // Field in primary collection
      foreignField: "userId", // Field in foreign collection
      as: "userOrders"        // Output array
    }
  }
];
const usersWithOrders = await summarize(pipeline, User);
console.log(usersWithOrders);

🛠️ Options

Each function accepts an optional third parameter for customization:

const options = { sort: { createdAt: -1 }, limit: 10 };
const latestUsers = await fetchAll({}, User, options);
console.log(latestUsers);

📜 License

MIT License. See LICENSE for details.

📌 Author: Ryan Charles Alcaraz (github)

Keywords

mongodb

FAQs

Package last updated on 13 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts