Registry /
database / pip-services3-mongodb-node
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.
IdentifiableMongoDbPersistence
✓ import { IdentifiableMongoDbPersistence } from 'pip-services3-mongodb-node'
✗ import IdentifiableMongoDbPersistence from 'pip-services3-mongodb-node'
Named export; no default export exists.
MongoDbConnection
✓ import { MongoDbConnection } from 'pip-services3-mongodb-node'
✗ import * as MongoDbConnection from 'pip-services3-mongodb-node'
Named export; do not use namespace import.
DefaultMongoDbFactory
✓ import { DefaultMongoDbFactory } from 'pip-services3-mongodb-node'
✗ const DefaultMongoDbFactory = require('pip-services3-mongodb-node').DefaultMongoDbFactory
Require pattern works but named import is preferred for TypeScript.
Defines a custom persistence class extending IdentifiableMongoDbPersistence with a composed filter for paginated queries.
import { IdentifiableMongoDbPersistence } from 'pip-services3-mongodb-node';
import { IIdentifiable, FilterParams, PagingParams, DataPage } from 'pip-services3-commons-node';
interface MyObject extends IIdentifiable {
key: string;
value: number;
}
class MyMongoDbPersistence extends IdentifiableMongoDbPersistence<MyObject> {
public constructor() {
super('myobjects');
this.ensureIndex({ key: 1 }, { unique: true });
}
public getPageByFilter(
correlationId: string,
filter: FilterParams,
paging: PagingParams,
callback: (err: any, page: DataPage<MyObject>) => void
): void {
super.getPageByFilter(correlationId, this.composeFilter(filter), paging, '_id', null, callback);
}
private composeFilter(filter: FilterParams): any {
filter = filter || new FilterParams();
let criteria: any[] = [];
let id = filter.getAsNullableString('id');
if (id != null) criteria.push({ _id: id });
let tempIds = filter.getAsNullableString('ids');
if (tempIds != null) {
let ids = tempIds.split(',');
criteria.push({ _id: { $in: ids } });
}
let key = filter.getAsNullableString('key');
if (key != null) criteria.push({ key: key });
return criteria.length > 0 ? { $and: criteria } : null;
}
}
Errors
Common errors & fixes
Cannot find module 'pip-services3-mongodb-node'
Package not installed or not in node_modules.
fixRun: npm install pip-services3-mongodb-node --save
Property '_collection' does not exist on type 'IdentifiableMongoDbPersistence'.
Accessing protected property outside subclass.
fixAccess '_collection' only within a class that extends IdentifiableMongoDbPersistence.
TypeError: this.ensureIndex is not a function
Calling ensureIndex before calling base constructor or in wrong context.
fixCall ensureIndex in the constructor after super() call.
Audit
Dependencies
pip-services3-commons-noderequiredCore Pip.Services types and interfaces (IIdentifiable, FilterParams, PagingParams, DataPage)
mongodbrequiredNative MongoDB driver used internally for database operations