feat(SmartDataDbDoc): add static .getCount({}) method
This commit is contained in:
parent
5a2cc2406c
commit
552b344914
@ -199,12 +199,18 @@ tap.test('should store a new Truck', async () => {
|
|||||||
const truck = new Truck('blue', 'MAN');
|
const truck = new Truck('blue', 'MAN');
|
||||||
await truck.save();
|
await truck.save();
|
||||||
const myTruck2 = await Truck.getInstance({ color: 'blue' });
|
const myTruck2 = await Truck.getInstance({ color: 'blue' });
|
||||||
|
expect(myTruck2.color).toEqual('blue');
|
||||||
myTruck2.color = 'red';
|
myTruck2.color = 'red';
|
||||||
await myTruck2.save();
|
await myTruck2.save();
|
||||||
const myTruck3 = await Truck.getInstance({ color: 'blue' });
|
const myTruck3 = await Truck.getInstance({ color: 'blue' });
|
||||||
console.log(myTruck3);
|
expect(myTruck3).toBeNull();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
tap.test('should return a count', async () => {
|
||||||
|
const truckCount = await Truck.getCount();
|
||||||
|
expect(truckCount).toEqual(1);
|
||||||
|
})
|
||||||
|
|
||||||
tap.test('should use a cursor', async () => {
|
tap.test('should use a cursor', async () => {
|
||||||
const cursor = await Car.getCursor({});
|
const cursor = await Car.getCursor({});
|
||||||
let counter = 0;
|
let counter = 0;
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@push.rocks/smartdata',
|
name: '@push.rocks/smartdata',
|
||||||
version: '5.1.2',
|
version: '5.2.0',
|
||||||
description: 'An advanced library for NoSQL data organization and manipulation using TypeScript with support for MongoDB, data validation, collections, and custom data types.'
|
description: 'An advanced library for NoSQL data organization and manipulation using TypeScript with support for MongoDB, data validation, collections, and custom data types.'
|
||||||
}
|
}
|
||||||
|
@ -273,6 +273,11 @@ export class SmartdataCollection<T> {
|
|||||||
await this.mongoDbCollection.deleteOne(identifiableObject);
|
await this.mongoDbCollection.deleteOne(identifiableObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async getCount(filterObject: any) {
|
||||||
|
await this.init();
|
||||||
|
return this.mongoDbCollection.countDocuments(filterObject);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* checks a Doc for constraints
|
* checks a Doc for constraints
|
||||||
* if this.objectValidation is not set it passes.
|
* if this.objectValidation is not set it passes.
|
||||||
|
@ -181,6 +181,17 @@ export class SmartDataDbDoc<T extends TImplements, TImplements, TManager extends
|
|||||||
await cursor.forEach(forEachFunction);
|
await cursor.forEach(forEachFunction);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns a count of the documents in the collection
|
||||||
|
*/
|
||||||
|
public static async getCount<T>(
|
||||||
|
this: plugins.tsclass.typeFest.Class<T>,
|
||||||
|
filterArg: plugins.tsclass.typeFest.PartialDeep<T> = ({} as any)
|
||||||
|
) {
|
||||||
|
const collection: SmartdataCollection<T> = (this as any).collection;
|
||||||
|
return await collection.getCount(filterArg);
|
||||||
|
}
|
||||||
|
|
||||||
// INSTANCE
|
// INSTANCE
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user