@@ -11,12 +11,14 @@ import type {
1111  AggregateOptions , 
1212  BulkWriteOptions , 
1313  Collection  as  MongoCollection , 
14+   CountDocumentsOptions , 
1415  CreateIndexesOptions , 
1516  DeleteOptions , 
1617  DeleteResult , 
1718  Document , 
1819  DropCollectionOptions , 
1920  DropIndexesOptions , 
21+   EstimatedDocumentCountOptions , 
2022  FindOneAndReplaceOptions , 
2123  FindOptions  as  MongoFindOptions , 
2224  IndexDescription , 
@@ -493,4 +495,51 @@ export const aggregate: {
493495    } ) 
494496) 
495497
498+ export  const  estimatedDocumentCount : { 
499+   ( 
500+     options ?: EstimatedDocumentCountOptions 
501+   ) : < A  extends  Document ,  I  extends  Document ,  R > ( 
502+     collection : Collection < A ,  I ,  R > 
503+   )  =>  Effect . Effect < number ,  MongoError . MongoError ,  R > 
504+   < A  extends  Document ,  I  extends  Document ,  R > ( 
505+     collection : Collection < A ,  I ,  R > , 
506+     options ?: EstimatedDocumentCountOptions 
507+   ) : Effect . Effect < number ,  MongoError . MongoError ,  R > 
508+ }  =  F . dual ( 
509+   ( args )  =>  isCollection ( args [ 0 ] ) , 
510+   < A  extends  Document ,  I  extends  Document ,  R > ( 
511+     collection : Collection < A ,  I ,  R > , 
512+     options ?: EstimatedDocumentCountOptions 
513+   ) : Effect . Effect < number ,  MongoError . MongoError ,  R >  => 
514+     F . pipe ( 
515+       Effect . promise ( ( )  =>  collection . collection . estimatedDocumentCount ( options ) ) , 
516+       Effect . catchAllDefect ( MongoError . mongoErrorDie < number > ( "estimatedDocumentCount error" ) ) 
517+     ) 
518+ ) 
519+ 
520+ export  const  countDocuments : { 
521+   < I  extends  Document > ( 
522+     filter ?: Filter < I > , 
523+     options ?: CountDocumentsOptions 
524+   ) : < A  extends  Document ,  R > ( 
525+     collection : Collection < A ,  I ,  R > 
526+   )  =>  Effect . Effect < number ,  MongoError . MongoError ,  R > 
527+   < A  extends  Document ,  I  extends  Document ,  R > ( 
528+     collection : Collection < A ,  I ,  R > , 
529+     filter ?: Filter < I > , 
530+     options ?: CountDocumentsOptions 
531+   ) : Effect . Effect < number ,  MongoError . MongoError ,  R > 
532+ }  =  F . dual ( 
533+   ( args )  =>  isCollection ( args [ 0 ] ) , 
534+   < A  extends  Document ,  I  extends  Document ,  R > ( 
535+     collection : Collection < A ,  I ,  R > , 
536+     filter ?: Filter < I > , 
537+     options ?: CountDocumentsOptions 
538+   ) : Effect . Effect < number ,  MongoError . MongoError ,  R >  => 
539+     F . pipe ( 
540+       Effect . promise ( ( )  =>  collection . collection . countDocuments ( filter ,  options ) ) , 
541+       Effect . catchAllDefect ( MongoError . mongoErrorDie < number > ( "countDocuments error" ) ) 
542+     ) 
543+ ) 
544+ 
496545const  isCollection  =  ( x : unknown )  =>  x  instanceof  Collection 
0 commit comments