@cloudbase/database 1.4.2 → 1.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/commonjs/index.d.ts +2 -0
  2. package/dist/commonjs/utils/utils.d.ts +2 -3
  3. package/dist/esm/ObjectId/index.d.ts +11 -0
  4. package/dist/esm/ObjectId/index.js +17 -0
  5. package/dist/esm/aggregate.d.ts +29 -0
  6. package/dist/esm/aggregate.js +121 -0
  7. package/dist/esm/collection.d.ts +17 -0
  8. package/dist/esm/collection.js +69 -0
  9. package/dist/esm/command.d.ts +175 -0
  10. package/dist/esm/command.js +281 -0
  11. package/dist/esm/commands/logic.d.ts +24 -0
  12. package/dist/esm/commands/logic.js +74 -0
  13. package/dist/esm/commands/query.d.ts +73 -0
  14. package/dist/esm/commands/query.js +141 -0
  15. package/dist/esm/commands/update.d.ts +29 -0
  16. package/dist/esm/commands/update.js +44 -0
  17. package/dist/esm/config/app.config.d.ts +6 -0
  18. package/dist/esm/config/app.config.js +5 -0
  19. package/dist/esm/config/error.config.d.ts +3 -0
  20. package/dist/esm/config/error.config.js +13 -0
  21. package/dist/esm/const/code.d.ts +34 -0
  22. package/dist/esm/const/code.js +34 -0
  23. package/dist/esm/constant.d.ts +54 -0
  24. package/dist/esm/constant.js +67 -0
  25. package/dist/esm/document.d.ts +14 -0
  26. package/dist/esm/document.js +214 -0
  27. package/dist/esm/geo/index.d.ts +6 -0
  28. package/dist/esm/geo/index.js +6 -0
  29. package/dist/esm/geo/interface.d.ts +24 -0
  30. package/dist/esm/geo/interface.js +0 -0
  31. package/dist/esm/geo/lineString.d.ts +19 -0
  32. package/dist/esm/geo/lineString.js +54 -0
  33. package/dist/esm/geo/multiLineString.d.ts +18 -0
  34. package/dist/esm/geo/multiLineString.js +53 -0
  35. package/dist/esm/geo/multiPoint.d.ts +18 -0
  36. package/dist/esm/geo/multiPoint.js +47 -0
  37. package/dist/esm/geo/multiPolygon.d.ts +18 -0
  38. package/dist/esm/geo/multiPolygon.js +59 -0
  39. package/dist/esm/geo/point.d.ts +19 -0
  40. package/dist/esm/geo/point.js +40 -0
  41. package/dist/esm/geo/polygon.d.ts +19 -0
  42. package/dist/esm/geo/polygon.js +67 -0
  43. package/dist/esm/helper/symbol.d.ts +15 -0
  44. package/dist/esm/helper/symbol.js +15 -0
  45. package/dist/esm/index.d.ts +52 -0
  46. package/dist/esm/index.js +35 -0
  47. package/dist/esm/operator-map.d.ts +4 -0
  48. package/dist/esm/operator-map.js +20 -0
  49. package/dist/esm/query.d.ts +38 -0
  50. package/dist/esm/query.js +246 -0
  51. package/dist/esm/realtime/error.d.ts +7 -0
  52. package/dist/esm/realtime/error.js +8 -0
  53. package/dist/esm/realtime/listener.d.ts +14 -0
  54. package/dist/esm/realtime/listener.js +14 -0
  55. package/dist/esm/realtime/message.d.ts +3 -0
  56. package/dist/esm/realtime/message.js +6 -0
  57. package/dist/esm/realtime/snapshot.d.ts +16 -0
  58. package/dist/esm/realtime/snapshot.js +39 -0
  59. package/dist/esm/realtime/virtual-websocket-client.d.ts +63 -0
  60. package/dist/esm/realtime/virtual-websocket-client.js +733 -0
  61. package/dist/esm/realtime/websocket-client.d.ts +78 -0
  62. package/dist/esm/realtime/websocket-client.js +564 -0
  63. package/dist/esm/realtime/ws-event.d.ts +126 -0
  64. package/dist/esm/realtime/ws-event.js +137 -0
  65. package/dist/esm/regexp/index.d.ts +18 -0
  66. package/dist/esm/regexp/index.js +26 -0
  67. package/dist/esm/serializer/common.d.ts +11 -0
  68. package/dist/esm/serializer/common.js +82 -0
  69. package/dist/esm/serializer/datatype.d.ts +7 -0
  70. package/dist/esm/serializer/datatype.js +95 -0
  71. package/dist/esm/serializer/query.d.ts +8 -0
  72. package/dist/esm/serializer/query.js +251 -0
  73. package/dist/esm/serializer/update.d.ts +16 -0
  74. package/dist/esm/serializer/update.js +139 -0
  75. package/dist/esm/serverDate/index.d.ts +13 -0
  76. package/dist/esm/serverDate/index.js +19 -0
  77. package/dist/esm/transaction/index.d.ts +30 -0
  78. package/dist/esm/transaction/index.js +100 -0
  79. package/dist/esm/transaction.d.ts +42 -0
  80. package/dist/esm/transaction.js +121 -0
  81. package/dist/esm/typings/index.d.ts +45 -0
  82. package/dist/esm/typings/index.js +0 -0
  83. package/dist/esm/typings/realtime.d.ts +219 -0
  84. package/dist/esm/typings/realtime.js +0 -0
  85. package/dist/esm/util.d.ts +9 -0
  86. package/dist/esm/util.js +98 -0
  87. package/dist/esm/utils/error.d.ts +37 -0
  88. package/dist/esm/utils/error.js +49 -0
  89. package/dist/esm/utils/msg.d.ts +0 -0
  90. package/dist/esm/utils/msg.js +0 -0
  91. package/dist/esm/utils/symbol.d.ts +8 -0
  92. package/dist/esm/utils/symbol.js +36 -0
  93. package/dist/esm/utils/type.d.ts +13 -0
  94. package/dist/esm/utils/type.js +20 -0
  95. package/dist/esm/utils/utils.d.ts +19 -0
  96. package/dist/esm/utils/utils.js +55 -0
  97. package/dist/esm/validate.d.ts +1 -0
  98. package/dist/esm/validate.js +152 -0
  99. package/package.json +3 -2
  100. package/src/index.ts +2 -0
  101. package/.trunk/configs/.markdownlint.yaml +0 -10
  102. package/.trunk/trunk.yaml +0 -26
@@ -22,6 +22,8 @@ interface ICloudBaseConfig {
22
22
  credentials?: ICredentialsInfo;
23
23
  _useFeature?: boolean;
24
24
  throwOnCode?: boolean;
25
+ instance?: string;
26
+ database?: string;
25
27
  }
26
28
  interface ICredentialsInfo {
27
29
  private_key_id: string;
@@ -1,11 +1,10 @@
1
1
  import { QueryOption, UpdateOption } from '../query';
2
- import { EJSON } from 'bson';
3
2
  export declare const sleep: (ms?: number) => Promise<unknown>;
4
3
  export declare const autoCount: (domain?: string) => number;
5
4
  export declare const getReqOpts: (apiOptions: QueryOption | UpdateOption) => any;
6
5
  export declare const filterUndefined: (o: any) => any;
7
- export declare const stringifyByEJSON: (params: any) => string;
8
- export declare const parseByEJSON: (params: any) => EJSON.SerializableTypes;
6
+ export declare const stringifyByEJSON: (params: any) => any;
7
+ export declare const parseByEJSON: (params: any) => any;
9
8
  export declare class TcbError extends Error {
10
9
  readonly code: string;
11
10
  readonly message: string;
@@ -0,0 +1,11 @@
1
+ export declare class ObjectId {
2
+ id: string;
3
+ constructor({ id }?: {
4
+ id?: string;
5
+ });
6
+ readonly _internalType: import("../utils/symbol").InternalSymbol;
7
+ parse(): {
8
+ $oid: string;
9
+ };
10
+ }
11
+ export declare function ObjectIdConstructor(opt: any): ObjectId;
@@ -0,0 +1,17 @@
1
+ import { SYMBOL_OBJECTID } from '../helper/symbol';
2
+ export class ObjectId {
3
+ constructor({ id = '' } = {}) {
4
+ this.id = id;
5
+ }
6
+ get _internalType() {
7
+ return SYMBOL_OBJECTID;
8
+ }
9
+ parse() {
10
+ return {
11
+ $oid: this.id
12
+ };
13
+ }
14
+ }
15
+ export function ObjectIdConstructor(opt) {
16
+ return new ObjectId(opt);
17
+ }
@@ -0,0 +1,29 @@
1
+ export default class Aggregation {
2
+ _db: any;
3
+ _request: any;
4
+ _stages: any[];
5
+ _collectionName: string;
6
+ constructor(db?: any, collectionName?: any, rawPipeline?: any);
7
+ end(): Promise<any>;
8
+ unwrap(): any[];
9
+ done(): {
10
+ [x: number]: any;
11
+ }[];
12
+ _pipe(stage: any, param: any, raw?: boolean): this;
13
+ addFields(param: any): this;
14
+ bucket(param: any): this;
15
+ bucketAuto(param: any): this;
16
+ count(param: any): this;
17
+ geoNear(param: any): this;
18
+ group(param: any): this;
19
+ limit(param: any): this;
20
+ match(param: any): this;
21
+ project(param: any): this;
22
+ lookup(param: any): this;
23
+ replaceRoot(param: any): this;
24
+ sample(param: any): this;
25
+ skip(param: any): this;
26
+ sort(param: any): this;
27
+ sortByCount(param: any): this;
28
+ unwind(param: any): this;
29
+ }
@@ -0,0 +1,121 @@
1
+ import { Db } from './index';
2
+ import { EJSON } from 'bson';
3
+ import { QuerySerializer } from './serializer/query';
4
+ import { stringifyByEJSON } from './utils/utils';
5
+ import { getType } from './utils/type';
6
+ import { Validate } from './validate';
7
+ import { Point } from './geo/point';
8
+ export default class Aggregation {
9
+ constructor(db, collectionName, rawPipeline) {
10
+ this._stages = [];
11
+ if (db && collectionName) {
12
+ this._db = db;
13
+ this._request = new Db.reqClass(this._db.config);
14
+ this._collectionName = collectionName;
15
+ if (rawPipeline && rawPipeline.length > 0) {
16
+ rawPipeline.forEach((stage) => {
17
+ Validate.isValidAggregation(stage);
18
+ const stageName = Object.keys(stage)[0];
19
+ this._pipe(stageName, stage[stageName], true);
20
+ });
21
+ }
22
+ }
23
+ }
24
+ async end() {
25
+ if (!this._collectionName || !this._db) {
26
+ throw new Error('Aggregation pipeline cannot send request');
27
+ }
28
+ const result = await this._request.send('database.aggregateDocuments', {
29
+ collectionName: this._collectionName,
30
+ stages: this._stages
31
+ });
32
+ if (result && result.data && result.data.list) {
33
+ return {
34
+ requestId: result.requestId,
35
+ data: result.data.list.map(EJSON.parse)
36
+ };
37
+ }
38
+ return result;
39
+ }
40
+ unwrap() {
41
+ return this._stages;
42
+ }
43
+ done() {
44
+ return this._stages.map(({ stageKey, stageValue }) => {
45
+ return {
46
+ [stageKey]: JSON.parse(stageValue)
47
+ };
48
+ });
49
+ }
50
+ _pipe(stage, param, raw = false) {
51
+ let transformParam = '';
52
+ if (getType(param) === 'object') {
53
+ transformParam = stringifyByEJSON(param);
54
+ }
55
+ else {
56
+ transformParam = JSON.stringify(param);
57
+ }
58
+ this._stages.push({
59
+ stageKey: raw ? stage : `$${stage}`,
60
+ stageValue: transformParam
61
+ });
62
+ return this;
63
+ }
64
+ addFields(param) {
65
+ return this._pipe('addFields', param);
66
+ }
67
+ bucket(param) {
68
+ return this._pipe('bucket', param);
69
+ }
70
+ bucketAuto(param) {
71
+ return this._pipe('bucketAuto', param);
72
+ }
73
+ count(param) {
74
+ return this._pipe('count', param);
75
+ }
76
+ geoNear(param) {
77
+ if (param.query) {
78
+ param.query = QuerySerializer.encode(param.query);
79
+ }
80
+ if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {
81
+ param.distanceMultiplier = param.distanceMultiplier;
82
+ }
83
+ if (param.near) {
84
+ param.near = new Point(param.near.longitude, param.near.latitude).toJSON();
85
+ }
86
+ return this._pipe('geoNear', param);
87
+ }
88
+ group(param) {
89
+ return this._pipe('group', param);
90
+ }
91
+ limit(param) {
92
+ return this._pipe('limit', param);
93
+ }
94
+ match(param) {
95
+ return this._pipe('match', QuerySerializer.encode(param));
96
+ }
97
+ project(param) {
98
+ return this._pipe('project', param);
99
+ }
100
+ lookup(param) {
101
+ return this._pipe('lookup', param);
102
+ }
103
+ replaceRoot(param) {
104
+ return this._pipe('replaceRoot', param);
105
+ }
106
+ sample(param) {
107
+ return this._pipe('sample', param);
108
+ }
109
+ skip(param) {
110
+ return this._pipe('skip', param);
111
+ }
112
+ sort(param) {
113
+ return this._pipe('sort', param);
114
+ }
115
+ sortByCount(param) {
116
+ return this._pipe('sortByCount', param);
117
+ }
118
+ unwind(param) {
119
+ return this._pipe('unwind', param);
120
+ }
121
+ }
@@ -0,0 +1,17 @@
1
+ import { DocumentReference } from './document';
2
+ import { Query, QueryOption, UpdateOption } from './query';
3
+ import Aggregation from './aggregate';
4
+ export declare class CollectionReference extends Query {
5
+ protected _transactionId: string;
6
+ readonly name: string;
7
+ doc(docID: string | number): DocumentReference;
8
+ add(data: any): Promise<{
9
+ ids?: string[];
10
+ id?: string;
11
+ inserted?: number;
12
+ ok?: number;
13
+ requestId: string;
14
+ }>;
15
+ aggregate(rawPipeline?: object[]): Aggregation;
16
+ options(apiOptions: QueryOption | UpdateOption): CollectionReference;
17
+ }
@@ -0,0 +1,69 @@
1
+ import { DocumentReference } from './document';
2
+ import { Query } from './query';
3
+ import Aggregation from './aggregate';
4
+ import { serialize } from './serializer/datatype';
5
+ import { getReqOpts, stringifyByEJSON } from './utils/utils';
6
+ import { Validate } from './validate';
7
+ import { isArray } from './utils/type';
8
+ export class CollectionReference extends Query {
9
+ constructor(db, coll, apiOptions, transactionId) {
10
+ super(db, coll, '', apiOptions, transactionId);
11
+ if (transactionId) {
12
+ this._transactionId = transactionId;
13
+ }
14
+ }
15
+ get name() {
16
+ return this._coll;
17
+ }
18
+ doc(docID) {
19
+ if (typeof docID !== 'string' && typeof docID !== 'number') {
20
+ throw new Error('docId必须为字符串或数字');
21
+ }
22
+ return new DocumentReference(this._db, this._coll, this._apiOptions, docID, this._transactionId);
23
+ }
24
+ async add(data) {
25
+ let transformData = data;
26
+ if (!isArray(data)) {
27
+ transformData = [data];
28
+ }
29
+ transformData = transformData.map(item => {
30
+ return stringifyByEJSON(serialize(item));
31
+ });
32
+ let params = {
33
+ collectionName: this._coll,
34
+ data: transformData
35
+ };
36
+ if (this._transactionId) {
37
+ params.transactionId = this._transactionId;
38
+ }
39
+ const res = await this._request.send('database.insertDocument', params, getReqOpts(this._apiOptions));
40
+ if (res.code) {
41
+ return res;
42
+ }
43
+ if (!isArray(data)) {
44
+ if (this._transactionId) {
45
+ return {
46
+ inserted: 1,
47
+ ok: 1,
48
+ id: res.data.insertedIds[0],
49
+ requestId: res.requestId
50
+ };
51
+ }
52
+ return {
53
+ id: res.data.insertedIds[0],
54
+ requestId: res.requestId
55
+ };
56
+ }
57
+ return {
58
+ ids: res.data.insertedIds,
59
+ requestId: res.requestId
60
+ };
61
+ }
62
+ aggregate(rawPipeline = []) {
63
+ return new Aggregation(this._db, this._coll, (this._apiOptions.raw || false) ? rawPipeline : []);
64
+ }
65
+ options(apiOptions) {
66
+ Validate.isValidOptions(apiOptions);
67
+ return new CollectionReference(this._db, this._coll, apiOptions, this._transactionId);
68
+ }
69
+ }
@@ -0,0 +1,175 @@
1
+ import { QueryCommand } from './commands/query';
2
+ import { LogicCommand } from './commands/logic';
3
+ import { UpdateCommand } from './commands/update';
4
+ import Aggregation from './aggregate';
5
+ export declare type IQueryCondition = Record<string, any> | LogicCommand;
6
+ export declare const Command: {
7
+ eq(val: any): QueryCommand;
8
+ neq(val: any): QueryCommand;
9
+ lt(val: any): QueryCommand;
10
+ lte(val: any): QueryCommand;
11
+ gt(val: any): QueryCommand;
12
+ gte(val: any): QueryCommand;
13
+ in(val: any): QueryCommand;
14
+ nin(val: any): QueryCommand;
15
+ all(val: any): QueryCommand;
16
+ elemMatch(val: any): QueryCommand;
17
+ exists(val: boolean): QueryCommand;
18
+ size(val: number): QueryCommand;
19
+ mod(): QueryCommand;
20
+ geoNear(val: any): QueryCommand;
21
+ geoWithin(val: any): QueryCommand;
22
+ geoIntersects(val: any): QueryCommand;
23
+ and(...__expressions__: import("./serializer/datatype").IQueryCondition[]): LogicCommand;
24
+ nor(...__expressions__: import("./serializer/datatype").IQueryCondition[]): LogicCommand;
25
+ or(...__expressions__: import("./serializer/datatype").IQueryCondition[]): LogicCommand;
26
+ not(...__expressions__: import("./serializer/datatype").IQueryCondition[]): LogicCommand;
27
+ set(val: any): UpdateCommand;
28
+ remove(): UpdateCommand;
29
+ inc(val: number): UpdateCommand;
30
+ mul(val: number): UpdateCommand;
31
+ push(...args: any[]): UpdateCommand;
32
+ pull(values: any): UpdateCommand;
33
+ pullAll(values: any): UpdateCommand;
34
+ pop(): UpdateCommand;
35
+ shift(): UpdateCommand;
36
+ unshift(...__values__: any[]): UpdateCommand;
37
+ addToSet(values: any): UpdateCommand;
38
+ rename(values: any): UpdateCommand;
39
+ bit(values: any): UpdateCommand;
40
+ max(values: any): UpdateCommand;
41
+ min(values: any): UpdateCommand;
42
+ expr(values: AggregationOperator): {
43
+ $expr: AggregationOperator;
44
+ };
45
+ jsonSchema(schema: any): {
46
+ $jsonSchema: any;
47
+ };
48
+ text(values: string | {
49
+ search: string;
50
+ language?: string;
51
+ caseSensitive?: boolean;
52
+ diacriticSensitive: boolean;
53
+ }): {
54
+ $search: {
55
+ (regexp: string | RegExp): number;
56
+ (searcher: {
57
+ [Symbol.search](string: string): number;
58
+ }): number;
59
+ };
60
+ $language?: undefined;
61
+ $caseSensitive?: undefined;
62
+ $diacriticSensitive?: undefined;
63
+ } | {
64
+ $search: string;
65
+ $language: string;
66
+ $caseSensitive: boolean;
67
+ $diacriticSensitive: boolean;
68
+ };
69
+ aggregate: {
70
+ pipeline(): Aggregation;
71
+ abs: (param: any) => AggregationOperator;
72
+ add: (param: any) => AggregationOperator;
73
+ ceil: (param: any) => AggregationOperator;
74
+ divide: (param: any) => AggregationOperator;
75
+ exp: (param: any) => AggregationOperator;
76
+ floor: (param: any) => AggregationOperator;
77
+ ln: (param: any) => AggregationOperator;
78
+ log: (param: any) => AggregationOperator;
79
+ log10: (param: any) => AggregationOperator;
80
+ mod: (param: any) => AggregationOperator;
81
+ multiply: (param: any) => AggregationOperator;
82
+ pow: (param: any) => AggregationOperator;
83
+ sqrt: (param: any) => AggregationOperator;
84
+ subtract: (param: any) => AggregationOperator;
85
+ trunc: (param: any) => AggregationOperator;
86
+ arrayElemAt: (param: any) => AggregationOperator;
87
+ arrayToObject: (param: any) => AggregationOperator;
88
+ concatArrays: (param: any) => AggregationOperator;
89
+ filter: (param: any) => AggregationOperator;
90
+ in: (param: any) => AggregationOperator;
91
+ indexOfArray: (param: any) => AggregationOperator;
92
+ isArray: (param: any) => AggregationOperator;
93
+ map: (param: any) => AggregationOperator;
94
+ range: (param: any) => AggregationOperator;
95
+ reduce: (param: any) => AggregationOperator;
96
+ reverseArray: (param: any) => AggregationOperator;
97
+ size: (param: any) => AggregationOperator;
98
+ slice: (param: any) => AggregationOperator;
99
+ zip: (param: any) => AggregationOperator;
100
+ and: (param: any) => AggregationOperator;
101
+ not: (param: any) => AggregationOperator;
102
+ or: (param: any) => AggregationOperator;
103
+ cmp: (param: any) => AggregationOperator;
104
+ eq: (param: any) => AggregationOperator;
105
+ gt: (param: any) => AggregationOperator;
106
+ gte: (param: any) => AggregationOperator;
107
+ lt: (param: any) => AggregationOperator;
108
+ lte: (param: any) => AggregationOperator;
109
+ neq: (param: any) => AggregationOperator;
110
+ cond: (param: any) => AggregationOperator;
111
+ ifNull: (param: any) => AggregationOperator;
112
+ switch: (param: any) => AggregationOperator;
113
+ dateFromParts: (param: any) => AggregationOperator;
114
+ dateFromString: (param: any) => AggregationOperator;
115
+ dayOfMonth: (param: any) => AggregationOperator;
116
+ dayOfWeek: (param: any) => AggregationOperator;
117
+ dayOfYear: (param: any) => AggregationOperator;
118
+ isoDayOfWeek: (param: any) => AggregationOperator;
119
+ isoWeek: (param: any) => AggregationOperator;
120
+ isoWeekYear: (param: any) => AggregationOperator;
121
+ millisecond: (param: any) => AggregationOperator;
122
+ minute: (param: any) => AggregationOperator;
123
+ month: (param: any) => AggregationOperator;
124
+ second: (param: any) => AggregationOperator;
125
+ hour: (param: any) => AggregationOperator;
126
+ week: (param: any) => AggregationOperator;
127
+ year: (param: any) => AggregationOperator;
128
+ literal: (param: any) => AggregationOperator;
129
+ mergeObjects: (param: any) => AggregationOperator;
130
+ objectToArray: (param: any) => AggregationOperator;
131
+ allElementsTrue: (param: any) => AggregationOperator;
132
+ anyElementTrue: (param: any) => AggregationOperator;
133
+ setDifference: (param: any) => AggregationOperator;
134
+ setEquals: (param: any) => AggregationOperator;
135
+ setIntersection: (param: any) => AggregationOperator;
136
+ setIsSubset: (param: any) => AggregationOperator;
137
+ setUnion: (param: any) => AggregationOperator;
138
+ concat: (param: any) => AggregationOperator;
139
+ dateToString: (param: any) => AggregationOperator;
140
+ indexOfBytes: (param: any) => AggregationOperator;
141
+ indexOfCP: (param: any) => AggregationOperator;
142
+ split: (param: any) => AggregationOperator;
143
+ strLenBytes: (param: any) => AggregationOperator;
144
+ strLenCP: (param: any) => AggregationOperator;
145
+ strcasecmp: (param: any) => AggregationOperator;
146
+ substr: (param: any) => AggregationOperator;
147
+ substrBytes: (param: any) => AggregationOperator;
148
+ substrCP: (param: any) => AggregationOperator;
149
+ toLower: (param: any) => AggregationOperator;
150
+ toUpper: (param: any) => AggregationOperator;
151
+ meta: (param: any) => AggregationOperator;
152
+ addToSet: (param: any) => AggregationOperator;
153
+ avg: (param: any) => AggregationOperator;
154
+ first: (param: any) => AggregationOperator;
155
+ last: (param: any) => AggregationOperator;
156
+ max: (param: any) => AggregationOperator;
157
+ min: (param: any) => AggregationOperator;
158
+ push: (param: any) => AggregationOperator;
159
+ stdDevPop: (param: any) => AggregationOperator;
160
+ stdDevSamp: (param: any) => AggregationOperator;
161
+ sum: (param: any) => AggregationOperator;
162
+ let: (param: any) => AggregationOperator;
163
+ };
164
+ project: {
165
+ slice: (param: any) => ProjectionOperator;
166
+ elemMatch: (param: any) => ProjectionOperator;
167
+ };
168
+ };
169
+ export declare class AggregationOperator {
170
+ constructor(name: any, param: any);
171
+ }
172
+ export declare class ProjectionOperator {
173
+ constructor(name: any, param: any);
174
+ }
175
+ export default Command;