Registry / database / odata-v4-mongodb

odata-v4-mongodb

JSON →
library0.1.12jsnpmunverified

A library for converting OData v4 query segments (such as $filter, $select, $skip, $top) into MongoDB query objects. Version 0.1.12 is the latest and appears to be stable but early-stage, with limited release cadence. It depends on odata-v4-parser for OData syntax parsing. Key differentiator: enables building OData v4 compliant APIs directly over MongoDB, supporting filter, select, skip, top, but not yet $expand. Includes TypeScript definitions.

npm install odata-v4-mongodb
INSTALL
IMPORT
SIG · ODATA-V4-MONGODB
O
odata-v4-mongodb
databasejavascriptv0.1.12
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

createFilter
import { createFilter } from 'odata-v4-mongodb'
const createFilter = require('odata-v4-mongodb');
ESM import is preferred; TypeScript definitions included.
createQuery
import { createQuery } from 'odata-v4-mongodb'
var createQuery = require('odata-v4-mongodb').createFilter;
createQuery handles $filter, $select, $skip, $top together; common mistake to misname require destructure.
MongoDBDriver
import type { MongoDBDriver } from 'odata-v4-mongodb'
import { MongoDBDriver } from 'odata-v4-mongodb'
MongoDBDriver is a TypeScript type, not a runtime value; use 'import type' for correct usage.

Create an OData v4 endpoint over MongoDB using createFilter and createQuery with Express.

import { createFilter, createQuery } from 'odata-v4-mongodb'; import { Collection } from 'mongodb'; // Express endpoint example app.get('/api/products', async (req: any, res: any) => { try { const filter = createFilter(req.query.$filter || ''); const query = createQuery(req.query); const data = await collection.find(query).toArray(); res.json({ '@odata.context': `${req.protocol}://${req.get('host')}/api/$metadata#products`, value: data }); } catch (err) { res.status(400).json({ error: 'Invalid OData query' }); } });
Debug
Known issues
breakingcreateQuery expects a query object with $filter, $select, etc., not a string. Passing a string will return unexpected results.
fix
Pass req.query (object) or { $filter: '...', $select: '...' }.
affects: >=0.1.0
gotchaOData $orderby is not supported by createQuery in current version; will be ignored silently.
fix
Manually handle $orderby using MongoDB sort() after query.
affects: <=0.1.12
gotcha$expand is not supported; using it will cause createQuery to throw or ignore.
fix
Implement expand logic manually or avoid using $expand.
affects: <=0.1.12
deprecatedThe 'createFilter' function is stable but 'createQuery' is recommended for full query building.
fix
Use createQuery to handle $filter, $select, $skip, $top together.
affects: >=0.1.0
breakingVersion 0.1.0 introduced createQuery; previous versions only had createFilter. Code written for earlier versions may break.
fix
Update imports to include createQuery if needed.
affects: <0.1.0
Errors
Common errors & fixes
TypeError: odata_v4_mongodb_1.createFilter is not a function
Using CommonJS require without destructuring; odata-v4-mongodb exports a module with named exports, not a function.
fix
Use: const { createFilter } = require('odata-v4-mongodb');
Cannot find module 'odata-v4-mongodb'
Package not installed or missing dependency; required when using TypeScript or Node.js.
fix
Run: npm install odata-v4-mongodb
Argument of type 'string' is not assignable to parameter of type 'QueryOptions'
Passing raw query string instead of object to createQuery.
fix
Pass req.query object or { filter: req.query.$filter, select: req.query.$select }.
MongoError: unknown operator: $regex
Certain OData filter operators (like substringof) may convert to $regex which requires MongoDB 3.6+ or collision with escaped characters.
fix
Ensure MongoDB version >= 3.6, or sanitize inputs; avoid special regex characters.
Upgrade
Version history
0.1.12latest on npm
Audit
Dependencies
odata-v4-parserrequiredParses OData v4 query string into AST for conversion to MongoDB query
Agent activity
5 hits · last 30 days
node
4
Resources
odata-v4-mongodb — npm install odata-v4-mongodb · libregistry