Storecraft MongoDB driver for node / deno / bun
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 existsawait 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=mainMONGODB_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
)
- First start a
mongo-db
server First, make sure you havedocker
installed, Then, run
npm run database-mongodb:docker-compose-up
- create Environment
create .env
file with
MONGODB_URL="mongodb://127.0.0.1:27017/?replicaSet=rs0"MONGODB_NAME="main"
- Run
tests/runner.test.js
npm run database-mongodb:test
All Rights Reserved, storecraft, (2025)