Docs
backend/databases

Storecraft MongoDB driver for node / deno / bun

MongoDB

Official mongodb driver for StoreCraft on Node.js / Deno / Bun platforms. Also, official support for mongo-db as vector store.

npm i @storecraft/database-mongodb

usage

import 'dotenv/config';
import http from "node:http";
import { App } from '@storecraft/core'
import { NodePlatform } from '@storecraft/core/platform/node';
import { MongoDB } from '@storecraft/database-mongodb'
import { migrateToLatest } from '@storecraft/database-mongodb/migrate.js'
import { NodeLocalStorage } from '@storecraft/core/storage/node'
import { MongoVectorStore } from '@storecraft/database-mongodb/vector-store'
const app = new App()
.withPlatform(new NodePlatform())
.withDatabase(
new MongoDB(
{
url: process.env.MONGODB_URL,
db_name: process.env.MONGODB_NAME,
}
)
)
.withVectorStore(
new MongoVectorStore(
{
embedder: new OpenAIEmbedder(),
url: process.env.MONGODB_VECTOR_STORE_URL ?? process.env.MONGODB_URL,
db_name: process.env.MONGODB_VECTOR_STORE_DB_NAME ?? process.env.MONGODB_NAME,
}
)
).init();
await migrateToLatest(app.__show_me_everything.db, false);
// create if not exists
await app.__show_me_everything.vector_store.createVectorIndex(false, false);
http.createServer(app.handler).listen(
8000,
() => {
app.print_banner('http://localhost:8000');
}
);

Storecraft will search the following env variables

MONGODB_NAME=main
MONGODB_URL='mongodb-connection-string'
// also, this will default into `MONGODB_NAME`
MONGODB_VECTOR_STORE_DB_NAME=vector-store
// also, this will default into `MONGODB_URL`
MONGODB_VECTOR_STORE_URL='mongodb-connection-string'

So, you can instantiate with empty config

.withDatabase(
new MongoDB()
)
.withVectorStore(
new MongoVectorStore(
{
embedder: new OpenAIEmbedder(),
}
)
)

Testing Locally (I recommend to use Atlas)

  1. First start a mongo-db server First, make sure you have docker installed, Then, run
npm run database-mongodb:docker-compose-up
  1. create Environment

create .env file with

MONGODB_URL="mongodb://127.0.0.1:27017/?replicaSet=rs0"
MONGODB_NAME="main"
  1. Run tests/runner.test.js
npm run database-mongodb:test

All Rights Reserved, storecraft, (2025)