https://github.com/julianschmuckli/cap_mdb_handler
An SAP CAP extension to connect to any MongoDB instance.
https://github.com/julianschmuckli/cap_mdb_handler
cap mongodb sap sap-cap
Last synced: 11 days ago
JSON representation
An SAP CAP extension to connect to any MongoDB instance.
- Host: GitHub
- URL: https://github.com/julianschmuckli/cap_mdb_handler
- Owner: julianschmuckli
- License: apache-2.0
- Created: 2024-02-25T20:56:44.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-26T11:32:35.000Z (over 1 year ago)
- Last Synced: 2025-05-19T00:12:45.418Z (about 1 month ago)
- Topics: cap, mongodb, sap, sap-cap
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/cap_mdb_handler
- Size: 74.2 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SAP Cloud Application Programming Model (CAP) - MongoDB Handler
An unofficial SAP CAP extension to connect to any MongoDB instance.[](https://badge.fury.io/js/cap_mdb_handler)
## Introduction
This project lets you connect to a MongoDB instance from a CAP service. It provides a simple way to read, create, update and delete documents in a MongoDB collection, which represents a CAP entity. The flexible nature of MongoDB allows you to store any kind of data, which can be accessed and manipulated using the CAP service.

All logos are trademarks of their respective owners.
## Prerequisites
- Node.js
- MongoDB instance
- SAP Cloud Application Programming Model (CAP)
- SAP Business Application Studio (BAS) or
- Visual Studio Code (VSCode) with the SAP Business Application Studio Extension Pack installed## Installation
```bash
npm i cap_mdb_handler
```## Usage
To use the library now, we need to add the following code to the `srv/service.ts` file of your CAP project.```typescript
import type { Request } from "@sap/cds/apis/services"
import cds = require('@sap/cds');// 1. Import the MDBHandler
import MDBHandler from "cap_mdb_handler";require('dotenv').config();
module.exports = cds.service.impl(async function () {
// 2. Create a new instance of the MDBHandler
const oHandler = new MDBHandler(process.env["MONGO_URL"], process.env["MONGO_DB"]);// 3. Register the event handlers
this.on('READ', '*', async (req : Request) => {
return await oHandler.read(req);
});this.on('CREATE', '*', async (req : Request) => {
return await oHandler.create(req);
});this.on('UPDATE', '*', async (req : Request) => {
return await oHandler.update(req);
});this.on('DELETE', '*', async (req : Request) => {
return await oHandler.delete(req);
});
});
```## Additional Configuration
The MDBHandler requires the following environment variables to be set:
- `MONGO_URL`: The URL of the MongoDB instance (beginning with `mongodb://` or `mongodb+srv://`)
- `MONGO_DB`: The name of the database to connect to