You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

mongodb-caching

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mongodb-caching

MongoDB with automatic Caching functionality using Keyv.

1.1.0
latest
Source
npmnpm
Version published
Weekly downloads
21
250%
Maintainers
1
Weekly downloads
 
Created
Source

MongoDB-Caching Version

MongoDB with automatic Caching functionality using Keyv.

Installation

# npm
npm install mongodb-caching

# yarn
yarn add mongodb-caching

# pnpm
pnpm i mongodb-caching

Cached functions

These functions automatically handle caching

  • find
  • findOne
  • countDocuments
  • distinct

NOTE: When you update/insert/delete a document, the cache is not updated, you'll need to manually clear the cache using customClass.clear() or customClass.keyv.clear()

Usage

Main

import { MongoClient } from "mongodb";

import MongoDBCaching from "mongodb-caching";

interface UserCollectionSchema {
	username: string;
}

class User extends MongoDBCaching<UserCollectionSchema> {
	create(username: string) {
		//* this.collection refers to MongoDB.Db.Collection
		return this.collection.insertOne({ username });
	}

	getUser(username: string) {
		//* Internally handles caching
		return this.findOne({ username });
	}
}

async function run() {
	const mongodb = new MongoClient("mongoUri");

	const userCollection = new User(mongodb.db("main").collection("users"));

	await userCollection.create("Timeraa");

	console.log(await userCollection.getUser("Timeraa"));
}

run();

With context

import { MongoClient } from "mongodb";

import MongoDBCaching from "mongodb-caching";

interface UserCollectionSchema {
	username: string;
	ip: string;
}

interface Context {
	ip: string;
}

class User extends MongoDBCaching<UserCollectionSchema, Context> {
	create(username: string) {
		//* this.collection refers to MongoDB.Db.Collection
		return this.collection.insertOne({
			username,
			ip: this.context!.ip
		});
	}

	getUser(username: string) {
		//* Internally handles caching
		return this.findOne({ username });
	}
}

async function run() {
	const mongodb = new MongoClient("mongoUri");

	const userCollection = new User(mongodb.db("main").collection("users"));

	//* Context would be set in let's say a middleware
	userCollection.setContext({ ip: "someIp" });

	await userCollection.create("Timeraa");

	console.log((await userCollection.getUser("Timeraa"))?.ip);
}

run();

Keywords

mongodb

FAQs

Package last updated on 06 Oct 2022

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