feat(SmartDataDbDoc): add static .getCount({}) method
This commit is contained in:
		@@ -199,12 +199,18 @@ tap.test('should store a new Truck', async () => {
 | 
			
		||||
  const truck = new Truck('blue', 'MAN');
 | 
			
		||||
  await truck.save();
 | 
			
		||||
  const myTruck2 = await Truck.getInstance({ color: 'blue' });
 | 
			
		||||
  expect(myTruck2.color).toEqual('blue');
 | 
			
		||||
  myTruck2.color = 'red';
 | 
			
		||||
  await myTruck2.save();
 | 
			
		||||
  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 () => {
 | 
			
		||||
  const cursor = await Car.getCursor({});
 | 
			
		||||
  let counter = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -3,6 +3,6 @@
 | 
			
		||||
 */
 | 
			
		||||
export const commitinfo = {
 | 
			
		||||
  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.'
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -273,6 +273,11 @@ export class SmartdataCollection<T> {
 | 
			
		||||
    await this.mongoDbCollection.deleteOne(identifiableObject);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public async getCount(filterObject: any) {
 | 
			
		||||
    await this.init();
 | 
			
		||||
    return this.mongoDbCollection.countDocuments(filterObject);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * checks a Doc for constraints
 | 
			
		||||
   * 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);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
   * 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
 | 
			
		||||
 | 
			
		||||
  /**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user