wok-server 0.4.13 → 0.6.0
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.
- package/README.en.md +61 -0
- package/README.md +44 -29
- package/dist/cache/cache.js +98 -98
- package/dist/cache/config.js +19 -19
- package/dist/cache/index.js +27 -27
- package/dist/cache/purge-task.js +46 -46
- package/dist/cache/stat.js +47 -47
- package/dist/config/convert.js +36 -36
- package/dist/config/exception.js +14 -14
- package/dist/config/index.js +81 -81
- package/dist/http-client/index.js +136 -136
- package/dist/i18n/ar.js +17 -17
- package/dist/i18n/de.js +17 -17
- package/dist/i18n/en-us.js +17 -17
- package/dist/i18n/es.js +17 -17
- package/dist/i18n/fr.js +17 -17
- package/dist/i18n/i18n.js +231 -231
- package/dist/i18n/index.js +52 -52
- package/dist/i18n/ja.js +17 -17
- package/dist/i18n/ko.js +17 -17
- package/dist/i18n/msg.js +2 -2
- package/dist/i18n/pt.js +17 -17
- package/dist/i18n/ru.js +17 -17
- package/dist/i18n/tag.js +18 -18
- package/dist/i18n/zh-HK.js +17 -17
- package/dist/i18n/zh-TW.js +17 -17
- package/dist/i18n/zh-cn.js +17 -17
- package/dist/index.js +14 -14
- package/dist/lock/index.js +114 -114
- package/dist/log/config.js +35 -29
- package/dist/log/date.js +21 -21
- package/dist/log/file.js +198 -72
- package/dist/log/index.js +135 -105
- package/dist/log/level.js +33 -33
- package/dist/log/log.js +56 -0
- package/dist/log/store.js +19 -16
- package/dist/mongodb/collection.js +2 -2
- package/dist/mongodb/config.js +34 -34
- package/dist/mongodb/doc.js +2 -2
- package/dist/mongodb/exception.js +14 -14
- package/dist/mongodb/index.js +58 -58
- package/dist/mongodb/manager/base.js +563 -563
- package/dist/mongodb/manager/index.js +63 -63
- package/dist/mongodb/manager/tx-strict.js +84 -84
- package/dist/mongodb/manager/tx.js +30 -30
- package/dist/mongodb/migration.js +52 -52
- package/dist/mvc/access-log.js +33 -33
- package/dist/mvc/config.js +27 -27
- package/dist/mvc/exchange.js +113 -113
- package/dist/mvc/handler/index.js +7 -6
- package/dist/mvc/handler/json.js +65 -65
- package/dist/mvc/handler/restful.js +35 -35
- package/dist/mvc/handler/sse.js +65 -0
- package/dist/mvc/handler/upload.js +31 -31
- package/dist/mvc/index.js +50 -50
- package/dist/mvc/interceptor.js +2 -2
- package/dist/mvc/query.js +43 -43
- package/dist/mvc/render/file.js +132 -132
- package/dist/mvc/render/html/html.js +90 -90
- package/dist/mvc/render/html/index.js +18 -18
- package/dist/mvc/render/html/style.js +2 -2
- package/dist/mvc/render/index.js +7 -7
- package/dist/mvc/render/json.js +26 -26
- package/dist/mvc/render/text.js +16 -16
- package/dist/mvc/router.js +2 -2
- package/dist/mvc/server.js +272 -272
- package/dist/mvc/static/header.js +67 -67
- package/dist/mvc/static/index.js +6 -6
- package/dist/mvc/static/mime-type.js +84 -84
- package/dist/mvc/static/server-cache-config.js +66 -66
- package/dist/mvc/static/server-cache.js +133 -133
- package/dist/mvc/static/static-handler.js +372 -372
- package/dist/mysql/config.js +51 -51
- package/dist/mysql/exception.js +14 -14
- package/dist/mysql/index.js +87 -87
- package/dist/mysql/manager/base.js +239 -231
- package/dist/mysql/manager/index.js +107 -107
- package/dist/mysql/manager/ops/count.js +20 -20
- package/dist/mysql/manager/ops/criteria.js +356 -356
- package/dist/mysql/manager/ops/delete.js +65 -65
- package/dist/mysql/manager/ops/exist.js +26 -26
- package/dist/mysql/manager/ops/find.js +169 -130
- package/dist/mysql/manager/ops/index.js +14 -14
- package/dist/mysql/manager/ops/insert.js +106 -106
- package/dist/mysql/manager/ops/modify.js +10 -10
- package/dist/mysql/manager/ops/paginate.js +23 -23
- package/dist/mysql/manager/ops/query.js +9 -9
- package/dist/mysql/manager/ops/update.js +216 -216
- package/dist/mysql/manager/ops/utils.js +24 -24
- package/dist/mysql/manager/tx-strict.js +103 -100
- package/dist/mysql/manager/tx.js +30 -30
- package/dist/mysql/manager/utils.js +56 -56
- package/dist/mysql/migration.js +136 -136
- package/dist/mysql/table-info.js +8 -8
- package/dist/task/daily.js +59 -59
- package/dist/task/fixed-delay.js +38 -38
- package/dist/task/fixed-rate.js +42 -42
- package/dist/task/index.js +9 -9
- package/dist/task/task.js +56 -56
- package/dist/validation/exception.js +36 -36
- package/dist/validation/index.js +40 -40
- package/dist/validation/validator/array.js +34 -34
- package/dist/validation/validator/enum.js +28 -28
- package/dist/validation/validator/index.js +14 -14
- package/dist/validation/validator/length.js +40 -40
- package/dist/validation/validator/max-length.js +35 -35
- package/dist/validation/validator/max.js +29 -29
- package/dist/validation/validator/min-length.js +33 -33
- package/dist/validation/validator/min.js +29 -29
- package/dist/validation/validator/not-blank.js +33 -33
- package/dist/validation/validator/not-null.js +21 -21
- package/dist/validation/validator/plain-obj.js +32 -32
- package/dist/validation/validator/regexp.js +34 -34
- package/documentation/en/cache.md +56 -0
- package/documentation/en/config.md +96 -0
- package/documentation/en/engineering.md +256 -0
- package/documentation/en/http-client.md +32 -0
- package/documentation/en/i18n.md +143 -0
- package/documentation/en/index.md +24 -0
- package/documentation/en/lock.md +51 -0
- package/documentation/en/log.md +109 -0
- package/documentation/en/mongodb.md +256 -0
- package/documentation/en/mvc.md +688 -0
- package/documentation/en/mysql.md +552 -0
- package/documentation/en/task.md +45 -0
- package/documentation/en/test.md +56 -0
- package/documentation/en/validate.md +130 -0
- package/documentation/zh-cn/engineering.md +1 -1
- package/documentation/zh-cn/log.md +81 -8
- package/documentation/zh-cn/mvc.md +66 -24
- package/documentation/zh-cn/mysql.md +24 -23
- package/documentation/zh-cn/validate.md +2 -2
- package/package.json +3 -1
- package/skills/wok-server-api-rules/SKILL.md +350 -0
- package/skills/wok-server-cache/SKILL.md +216 -0
- package/skills/wok-server-config/SKILL.md +200 -0
- package/skills/wok-server-getting-started/SKILL.md +123 -0
- package/skills/wok-server-getting-started/references/engineering.md +169 -0
- package/skills/wok-server-http-client/SKILL.md +164 -0
- package/skills/wok-server-i18n/SKILL.md +214 -0
- package/skills/wok-server-lock/SKILL.md +144 -0
- package/skills/wok-server-log/SKILL.md +218 -0
- package/skills/wok-server-mongodb/SKILL.md +235 -0
- package/skills/wok-server-mvc/SKILL.md +251 -0
- package/skills/wok-server-mvc/references/respond-html.md +157 -0
- package/skills/wok-server-mvc/references/sse.md +121 -0
- package/skills/wok-server-mvc/references/static-files.md +47 -0
- package/skills/wok-server-mvc/references/upload.md +62 -0
- package/skills/wok-server-mvc/references/websocket.md +30 -0
- package/skills/wok-server-mysql/SKILL.md +315 -0
- package/skills/wok-server-mysql/references/multi-datasource.md +76 -0
- package/skills/wok-server-mysql/references/version-control.md +22 -0
- package/skills/wok-server-task/SKILL.md +158 -0
- package/skills/wok-server-validate/SKILL.md +167 -0
- package/src/cache/cache.ts +118 -0
- package/src/cache/config.ts +53 -0
- package/src/cache/index.ts +27 -0
- package/src/cache/purge-task.ts +53 -0
- package/src/cache/stat.ts +47 -0
- package/src/config/convert.ts +27 -0
- package/src/config/exception.ts +8 -0
- package/src/config/index.ts +92 -0
- package/src/http-client/index.ts +202 -0
- package/src/i18n/ar.ts +16 -0
- package/src/i18n/de.ts +16 -0
- package/src/i18n/en-us.ts +16 -0
- package/src/i18n/es.ts +16 -0
- package/src/i18n/fr.ts +16 -0
- package/src/i18n/i18n.ts +230 -0
- package/src/i18n/index.ts +50 -0
- package/src/i18n/ja.ts +16 -0
- package/src/i18n/ko.ts +16 -0
- package/src/i18n/msg.ts +50 -0
- package/src/i18n/pt.ts +16 -0
- package/src/i18n/ru.ts +16 -0
- package/src/i18n/tag.ts +18 -0
- package/src/i18n/zh-HK.ts +16 -0
- package/src/i18n/zh-TW.ts +16 -0
- package/src/i18n/zh-cn.ts +16 -0
- package/src/index.ts +11 -0
- package/src/lock/index.ts +164 -0
- package/src/log/config.ts +71 -0
- package/src/log/date.ts +19 -0
- package/src/log/file.ts +215 -0
- package/src/log/index.ts +136 -0
- package/src/log/level.ts +29 -0
- package/src/log/log.ts +77 -0
- package/src/log/store.ts +31 -0
- package/src/mongodb/collection.ts +25 -0
- package/src/mongodb/config.ts +69 -0
- package/src/mongodb/doc.ts +12 -0
- package/src/mongodb/exception.ts +8 -0
- package/src/mongodb/index.ts +71 -0
- package/src/mongodb/manager/base.ts +674 -0
- package/src/mongodb/manager/index.ts +80 -0
- package/src/mongodb/manager/tx-strict.ts +153 -0
- package/src/mongodb/manager/tx.ts +34 -0
- package/src/mongodb/migration.ts +66 -0
- package/src/mvc/access-log.ts +33 -0
- package/src/mvc/config.ts +70 -0
- package/src/mvc/exchange.ts +126 -0
- package/src/mvc/handler/index.ts +4 -0
- package/src/mvc/handler/json.ts +96 -0
- package/src/mvc/handler/restful.ts +39 -0
- package/src/mvc/handler/sse.ts +90 -0
- package/src/mvc/handler/upload.ts +54 -0
- package/src/mvc/index.ts +48 -0
- package/src/mvc/interceptor.ts +12 -0
- package/src/mvc/query.ts +36 -0
- package/src/mvc/render/file.ts +148 -0
- package/src/mvc/render/html/html.ts +187 -0
- package/src/mvc/render/html/index.ts +16 -0
- package/src/mvc/render/html/style.ts +1201 -0
- package/src/mvc/render/index.ts +4 -0
- package/src/mvc/render/json.ts +24 -0
- package/src/mvc/render/text.ts +14 -0
- package/src/mvc/router.ts +13 -0
- package/src/mvc/server.ts +315 -0
- package/src/mvc/static/header.ts +86 -0
- package/src/mvc/static/index.ts +3 -0
- package/src/mvc/static/mime-type.ts +81 -0
- package/src/mvc/static/server-cache-config.ts +92 -0
- package/src/mvc/static/server-cache.ts +171 -0
- package/src/mvc/static/static-handler.ts +445 -0
- package/src/mysql/config.ts +130 -0
- package/src/mysql/exception.ts +8 -0
- package/src/mysql/index.ts +88 -0
- package/src/mysql/manager/base.ts +285 -0
- package/src/mysql/manager/index.ts +112 -0
- package/src/mysql/manager/ops/count.ts +30 -0
- package/src/mysql/manager/ops/criteria.ts +412 -0
- package/src/mysql/manager/ops/delete.ts +96 -0
- package/src/mysql/manager/ops/exist.ts +41 -0
- package/src/mysql/manager/ops/find.ts +226 -0
- package/src/mysql/manager/ops/index.ts +11 -0
- package/src/mysql/manager/ops/insert.ts +120 -0
- package/src/mysql/manager/ops/modify.ts +14 -0
- package/src/mysql/manager/ops/paginate.ts +60 -0
- package/src/mysql/manager/ops/query.ts +13 -0
- package/src/mysql/manager/ops/update.ts +294 -0
- package/src/mysql/manager/ops/utils.ts +20 -0
- package/src/mysql/manager/tx-strict.ts +138 -0
- package/src/mysql/manager/tx.ts +31 -0
- package/src/mysql/manager/utils.ts +75 -0
- package/src/mysql/migration.ts +149 -0
- package/src/mysql/table-info.ts +41 -0
- package/src/task/daily.ts +70 -0
- package/src/task/fixed-delay.ts +45 -0
- package/src/task/fixed-rate.ts +49 -0
- package/src/task/index.ts +4 -0
- package/src/task/task.ts +70 -0
- package/src/validation/exception.ts +27 -0
- package/src/validation/index.ts +61 -0
- package/src/validation/validator/array.ts +32 -0
- package/src/validation/validator/enum.ts +25 -0
- package/src/validation/validator/index.ts +11 -0
- package/src/validation/validator/length.ts +42 -0
- package/src/validation/validator/max-length.ts +33 -0
- package/src/validation/validator/max.ts +26 -0
- package/src/validation/validator/min-length.ts +31 -0
- package/src/validation/validator/min.ts +26 -0
- package/src/validation/validator/not-blank.ts +31 -0
- package/src/validation/validator/not-null.ts +19 -0
- package/src/validation/validator/plain-obj.ts +30 -0
- package/src/validation/validator/regexp.ts +32 -0
- package/types/cache/cache.d.ts +52 -52
- package/types/cache/config.d.ts +32 -32
- package/types/cache/index.d.ts +2 -2
- package/types/cache/purge-task.d.ts +11 -11
- package/types/cache/stat.d.ts +26 -26
- package/types/config/convert.d.ts +6 -6
- package/types/config/exception.d.ts +7 -7
- package/types/config/index.d.ts +25 -25
- package/types/http-client/index.d.ts +71 -71
- package/types/i18n/ar.d.ts +2 -2
- package/types/i18n/de.d.ts +2 -2
- package/types/i18n/en-us.d.ts +2 -2
- package/types/i18n/es.d.ts +2 -2
- package/types/i18n/fr.d.ts +2 -2
- package/types/i18n/i18n.d.ts +102 -102
- package/types/i18n/index.d.ts +9 -9
- package/types/i18n/ja.d.ts +2 -2
- package/types/i18n/ko.d.ts +2 -2
- package/types/i18n/msg.d.ts +50 -50
- package/types/i18n/pt.d.ts +2 -2
- package/types/i18n/ru.d.ts +2 -2
- package/types/i18n/tag.d.ts +11 -11
- package/types/i18n/zh-HK.d.ts +2 -2
- package/types/i18n/zh-TW.d.ts +2 -2
- package/types/i18n/zh-cn.d.ts +2 -2
- package/types/index.d.ts +11 -11
- package/types/lock/index.d.ts +64 -64
- package/types/log/config.d.ts +35 -27
- package/types/log/date.d.ts +2 -2
- package/types/log/file.d.ts +13 -5
- package/types/log/index.d.ts +53 -34
- package/types/log/level.d.ts +14 -14
- package/types/log/log.d.ts +40 -0
- package/types/log/store.d.ts +19 -12
- package/types/mongodb/collection.d.ts +25 -25
- package/types/mongodb/config.d.ts +45 -45
- package/types/mongodb/doc.d.ts +11 -11
- package/types/mongodb/exception.d.ts +7 -7
- package/types/mongodb/index.d.ts +29 -29
- package/types/mongodb/manager/base.d.ts +188 -188
- package/types/mongodb/manager/index.d.ts +38 -38
- package/types/mongodb/manager/tx-strict.d.ts +41 -41
- package/types/mongodb/manager/tx.d.ts +21 -21
- package/types/mongodb/migration.d.ts +12 -12
- package/types/mvc/access-log.d.ts +7 -7
- package/types/mvc/config.d.ts +42 -42
- package/types/mvc/exchange.d.ts +72 -72
- package/types/mvc/handler/index.d.ts +4 -3
- package/types/mvc/handler/json.d.ts +44 -44
- package/types/mvc/handler/restful.d.ts +11 -11
- package/types/mvc/handler/sse.d.ts +34 -0
- package/types/mvc/handler/upload.d.ts +36 -36
- package/types/mvc/index.d.ts +22 -22
- package/types/mvc/interceptor.d.ts +11 -11
- package/types/mvc/query.d.ts +13 -13
- package/types/mvc/render/file.d.ts +10 -10
- package/types/mvc/render/html/html.d.ts +98 -98
- package/types/mvc/render/html/index.d.ts +11 -11
- package/types/mvc/render/html/style.d.ts +1201 -1201
- package/types/mvc/render/index.d.ts +4 -4
- package/types/mvc/render/json.d.ts +17 -17
- package/types/mvc/render/text.d.ts +10 -10
- package/types/mvc/router.d.ts +11 -11
- package/types/mvc/server.d.ts +90 -90
- package/types/mvc/static/header.d.ts +27 -27
- package/types/mvc/static/index.d.ts +3 -3
- package/types/mvc/static/mime-type.d.ts +2 -2
- package/types/mvc/static/server-cache-config.d.ts +30 -30
- package/types/mvc/static/server-cache.d.ts +76 -76
- package/types/mvc/static/static-handler.d.ts +77 -77
- package/types/mysql/config.d.ts +90 -90
- package/types/mysql/exception.d.ts +7 -7
- package/types/mysql/index.d.ts +16 -16
- package/types/mysql/manager/base.d.ts +165 -159
- package/types/mysql/manager/index.d.ts +36 -36
- package/types/mysql/manager/ops/count.d.ts +13 -13
- package/types/mysql/manager/ops/criteria.d.ts +134 -134
- package/types/mysql/manager/ops/delete.d.ts +46 -46
- package/types/mysql/manager/ops/exist.d.ts +6 -6
- package/types/mysql/manager/ops/find.d.ts +86 -70
- package/types/mysql/manager/ops/index.d.ts +10 -10
- package/types/mysql/manager/ops/insert.d.ts +18 -18
- package/types/mysql/manager/ops/modify.d.ts +3 -3
- package/types/mysql/manager/ops/paginate.d.ts +36 -36
- package/types/mysql/manager/ops/query.d.ts +3 -3
- package/types/mysql/manager/ops/update.d.ts +76 -76
- package/types/mysql/manager/ops/utils.d.ts +5 -5
- package/types/mysql/manager/tx-strict.d.ts +36 -35
- package/types/mysql/manager/tx.d.ts +15 -15
- package/types/mysql/manager/utils.d.ts +17 -17
- package/types/mysql/migration.d.ts +8 -8
- package/types/mysql/table-info.d.ts +36 -36
- package/types/task/daily.d.ts +16 -16
- package/types/task/fixed-delay.d.ts +9 -9
- package/types/task/fixed-rate.d.ts +9 -9
- package/types/task/index.d.ts +4 -4
- package/types/task/task.d.ts +34 -34
- package/types/validation/exception.d.ts +38 -38
- package/types/validation/index.d.ts +32 -32
- package/types/validation/validator/array.d.ts +5 -5
- package/types/validation/validator/enum.d.ts +8 -8
- package/types/validation/validator/index.d.ts +11 -11
- package/types/validation/validator/length.d.ts +10 -10
- package/types/validation/validator/max-length.d.ts +8 -8
- package/types/validation/validator/max.d.ts +7 -7
- package/types/validation/validator/min-length.d.ts +6 -6
- package/types/validation/validator/min.d.ts +7 -7
- package/types/validation/validator/not-blank.d.ts +7 -7
- package/types/validation/validator/not-null.d.ts +6 -6
- package/types/validation/validator/plain-obj.d.ts +7 -7
- package/types/validation/validator/regexp.d.ts +8 -8
|
@@ -1,188 +1,188 @@
|
|
|
1
|
-
import { ClientSession, Db, Document, Filter, UpdateFilter } from 'mongodb';
|
|
2
|
-
import { MongoCollection } from '../collection';
|
|
3
|
-
import { MongoDBConfig } from '../config';
|
|
4
|
-
import { MongoDocId, MongoDocWithId } from '../doc';
|
|
5
|
-
/**
|
|
6
|
-
* mysql 分页查询结果
|
|
7
|
-
*/
|
|
8
|
-
export interface MongoPage<T> {
|
|
9
|
-
total: number;
|
|
10
|
-
list: T[];
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* mongodb 管理器基类,提供基本的操作功能.
|
|
14
|
-
*/
|
|
15
|
-
export declare abstract class BaseMongoManager {
|
|
16
|
-
protected config: MongoDBConfig;
|
|
17
|
-
protected readonly db: Db;
|
|
18
|
-
private session?;
|
|
19
|
-
/**
|
|
20
|
-
* mongodb 管理器构建
|
|
21
|
-
* @param db 库
|
|
22
|
-
* @param session 要绑定的会话,用于事务
|
|
23
|
-
*/
|
|
24
|
-
constructor(config: MongoDBConfig, db: Db, session?: ClientSession | undefined);
|
|
25
|
-
getCollection<T extends Document>(collInfo: MongoCollection<T>): import("mongodb").Collection<T>;
|
|
26
|
-
/**
|
|
27
|
-
* 查询计时
|
|
28
|
-
* @param opts
|
|
29
|
-
*/
|
|
30
|
-
protected timingQuery<T, D extends {
|
|
31
|
-
op: string;
|
|
32
|
-
coll: string;
|
|
33
|
-
}>(opts: {
|
|
34
|
-
query: () => Promise<T>;
|
|
35
|
-
desc: () => D;
|
|
36
|
-
}): Promise<T>;
|
|
37
|
-
findById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<MongoDocWithId<T> | null>;
|
|
38
|
-
/**
|
|
39
|
-
* 根据id列表查询
|
|
40
|
-
* @param coll
|
|
41
|
-
* @param ids
|
|
42
|
-
* @returns
|
|
43
|
-
*/
|
|
44
|
-
findByIdIn<T extends Document>(coll: MongoCollection<T>, ids: MongoDocId[]): Promise<MongoDocWithId<T>[]>;
|
|
45
|
-
/**
|
|
46
|
-
* 根据id判定是否存在
|
|
47
|
-
* @param coll
|
|
48
|
-
* @param id
|
|
49
|
-
*/
|
|
50
|
-
existsById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<boolean>;
|
|
51
|
-
/**
|
|
52
|
-
* 按指定的条件来判定是否存在记录
|
|
53
|
-
* @param coll
|
|
54
|
-
* @param filter
|
|
55
|
-
*/
|
|
56
|
-
existsBy<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<boolean>;
|
|
57
|
-
/**
|
|
58
|
-
* 按id进行删除
|
|
59
|
-
* @param coll
|
|
60
|
-
* @param id
|
|
61
|
-
* @returns
|
|
62
|
-
*/
|
|
63
|
-
deleteById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<boolean>;
|
|
64
|
-
/**
|
|
65
|
-
* 仅删除一条记录
|
|
66
|
-
* @param coll
|
|
67
|
-
* @param filter
|
|
68
|
-
* @returns
|
|
69
|
-
*/
|
|
70
|
-
deleteOne<T extends Document>(coll: MongoCollection<T>, filter: Partial<T>): Promise<boolean>;
|
|
71
|
-
/**
|
|
72
|
-
* 按条件删除数据,返回删除的记录行数.
|
|
73
|
-
* 务必谨慎使用,大批量删除容易带来性能问题,造成线上事故.
|
|
74
|
-
* @param coll
|
|
75
|
-
* @param filter
|
|
76
|
-
* @returns 被删除记录的数量
|
|
77
|
-
*/
|
|
78
|
-
deleteMany<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<number>;
|
|
79
|
-
/**
|
|
80
|
-
* 查询集合中所有记录.谨慎使用!
|
|
81
|
-
* @param coll
|
|
82
|
-
* @returns
|
|
83
|
-
*/
|
|
84
|
-
findAll<T extends Document>(coll: MongoCollection<T>): Promise<MongoDocWithId<T>[]>;
|
|
85
|
-
/**
|
|
86
|
-
* 根据给定的条件查找第一条符合条件的记录
|
|
87
|
-
* @param coll
|
|
88
|
-
* @param filter
|
|
89
|
-
* @returns
|
|
90
|
-
*/
|
|
91
|
-
findFirst<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<MongoDocWithId<T> | null>;
|
|
92
|
-
/**
|
|
93
|
-
* 插入新记录
|
|
94
|
-
* @param coll
|
|
95
|
-
* @param data
|
|
96
|
-
* @returns
|
|
97
|
-
*/
|
|
98
|
-
insert<T extends Document>(coll: MongoCollection<T>, data: T & {
|
|
99
|
-
_id?: MongoDocId;
|
|
100
|
-
}): Promise<MongoDocWithId<T>>;
|
|
101
|
-
/**
|
|
102
|
-
* 插入多条,批量插入.
|
|
103
|
-
* @param coll
|
|
104
|
-
* @param list
|
|
105
|
-
*/
|
|
106
|
-
insertMany<T extends Document>(coll: MongoCollection<T>, list: Array<T & {
|
|
107
|
-
_id?: MongoDocId;
|
|
108
|
-
}>): Promise<MongoDocWithId<T>[]>;
|
|
109
|
-
/**
|
|
110
|
-
* 更新,更新完整的文档内容。
|
|
111
|
-
* @param coll 集合信息
|
|
112
|
-
* @param data 要更新的数据,必须包含 _id 字段,支持 mongo 更新语法 $inc 等
|
|
113
|
-
* @returns 返回最新的数据
|
|
114
|
-
* @throws MongoDBException 当无法完成更新时抛出
|
|
115
|
-
*/
|
|
116
|
-
update<T extends Document>(coll: MongoCollection<T>, data: MongoDocWithId<T>): Promise<MongoDocWithId<T>>;
|
|
117
|
-
/**
|
|
118
|
-
* 仅更新一条记录
|
|
119
|
-
* @param coll
|
|
120
|
-
* @param filter
|
|
121
|
-
* @param updater
|
|
122
|
-
*/
|
|
123
|
-
updateOne<T extends Document>(coll: MongoCollection<T>, filter: Partial<T>, updater: UpdateFilter<T>): Promise<boolean>;
|
|
124
|
-
/**
|
|
125
|
-
* 局部更新,仅更新部分字段,可对字段做递增或数组元组的处理。
|
|
126
|
-
* @param coll 集合信息
|
|
127
|
-
* @param id id
|
|
128
|
-
* @param updater 更新内容
|
|
129
|
-
* @returns 更新是否成功
|
|
130
|
-
*/
|
|
131
|
-
partialUpdate<T extends Document>(coll: MongoCollection<T>, id: MongoDocId, updater: UpdateFilter<T>): Promise<boolean>;
|
|
132
|
-
/**
|
|
133
|
-
* 根据条件更新多条记录,和 partialUpdate 区别是可以根据过滤条件来处理多条记录。
|
|
134
|
-
* @param coll 集合
|
|
135
|
-
* @param filter 过滤规则
|
|
136
|
-
* @param updater 更新内容
|
|
137
|
-
* @returns 此次更新的记录数
|
|
138
|
-
*/
|
|
139
|
-
updateMany<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, updater: UpdateFilter<T>): Promise<number>;
|
|
140
|
-
/**
|
|
141
|
-
* 条件查询
|
|
142
|
-
* @param coll 集合信息
|
|
143
|
-
* @param filter 过滤条件
|
|
144
|
-
* @param opts 额外的选项
|
|
145
|
-
* @returns
|
|
146
|
-
*/
|
|
147
|
-
find<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, opts?: {
|
|
148
|
-
/**
|
|
149
|
-
* 偏移,需要 limit 有值才可以
|
|
150
|
-
*/
|
|
151
|
-
offset?: number;
|
|
152
|
-
/**
|
|
153
|
-
* 限制返回的数量
|
|
154
|
-
*/
|
|
155
|
-
limit?: number;
|
|
156
|
-
/**
|
|
157
|
-
* 排序规则,按先后顺序放入,每个规则是一个元组,第一个元素是字段名称,第二个元素是顺序
|
|
158
|
-
*/
|
|
159
|
-
orderBy?: Array<[keyof MongoDocWithId<T>, 'asc' | 'desc']>;
|
|
160
|
-
}): Promise<MongoDocWithId<T>[]>;
|
|
161
|
-
/**
|
|
162
|
-
* 查询符合条件的文档数量。请谨慎使用,count 是不能从索引直接读取的,只能实时计数,使用不当容易造成性能问题,引发线上事故。
|
|
163
|
-
* @param coll
|
|
164
|
-
* @param filter
|
|
165
|
-
* @returns
|
|
166
|
-
*/
|
|
167
|
-
count<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<number>;
|
|
168
|
-
/**
|
|
169
|
-
* 分页查询。谨慎使用,不建议对规模较大的数据查询直接使用分页。
|
|
170
|
-
* @param coll 集合信息
|
|
171
|
-
* @param filter 过滤条件
|
|
172
|
-
* @param opts 分页参数
|
|
173
|
-
*/
|
|
174
|
-
paginate<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, opts: {
|
|
175
|
-
/**
|
|
176
|
-
* 页码,从1开始,第一页是 1
|
|
177
|
-
*/
|
|
178
|
-
pn: number;
|
|
179
|
-
/**
|
|
180
|
-
* 每页的数据量大小
|
|
181
|
-
*/
|
|
182
|
-
pz: number;
|
|
183
|
-
/**
|
|
184
|
-
* 排序规则,按先后顺序放入,每个规则是一个元组,第一个元素是字段名称,第二个元素是顺序
|
|
185
|
-
*/
|
|
186
|
-
orderBy?: Array<[keyof MongoDocWithId<T>, 'asc' | 'desc']>;
|
|
187
|
-
}): Promise<MongoPage<MongoDocWithId<T>>>;
|
|
188
|
-
}
|
|
1
|
+
import { ClientSession, Db, Document, Filter, UpdateFilter } from 'mongodb';
|
|
2
|
+
import { MongoCollection } from '../collection';
|
|
3
|
+
import { MongoDBConfig } from '../config';
|
|
4
|
+
import { MongoDocId, MongoDocWithId } from '../doc';
|
|
5
|
+
/**
|
|
6
|
+
* mysql 分页查询结果
|
|
7
|
+
*/
|
|
8
|
+
export interface MongoPage<T> {
|
|
9
|
+
total: number;
|
|
10
|
+
list: T[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* mongodb 管理器基类,提供基本的操作功能.
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class BaseMongoManager {
|
|
16
|
+
protected config: MongoDBConfig;
|
|
17
|
+
protected readonly db: Db;
|
|
18
|
+
private session?;
|
|
19
|
+
/**
|
|
20
|
+
* mongodb 管理器构建
|
|
21
|
+
* @param db 库
|
|
22
|
+
* @param session 要绑定的会话,用于事务
|
|
23
|
+
*/
|
|
24
|
+
constructor(config: MongoDBConfig, db: Db, session?: ClientSession | undefined);
|
|
25
|
+
getCollection<T extends Document>(collInfo: MongoCollection<T>): import("mongodb").Collection<T>;
|
|
26
|
+
/**
|
|
27
|
+
* 查询计时
|
|
28
|
+
* @param opts
|
|
29
|
+
*/
|
|
30
|
+
protected timingQuery<T, D extends {
|
|
31
|
+
op: string;
|
|
32
|
+
coll: string;
|
|
33
|
+
}>(opts: {
|
|
34
|
+
query: () => Promise<T>;
|
|
35
|
+
desc: () => D;
|
|
36
|
+
}): Promise<T>;
|
|
37
|
+
findById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<MongoDocWithId<T> | null>;
|
|
38
|
+
/**
|
|
39
|
+
* 根据id列表查询
|
|
40
|
+
* @param coll
|
|
41
|
+
* @param ids
|
|
42
|
+
* @returns
|
|
43
|
+
*/
|
|
44
|
+
findByIdIn<T extends Document>(coll: MongoCollection<T>, ids: MongoDocId[]): Promise<MongoDocWithId<T>[]>;
|
|
45
|
+
/**
|
|
46
|
+
* 根据id判定是否存在
|
|
47
|
+
* @param coll
|
|
48
|
+
* @param id
|
|
49
|
+
*/
|
|
50
|
+
existsById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<boolean>;
|
|
51
|
+
/**
|
|
52
|
+
* 按指定的条件来判定是否存在记录
|
|
53
|
+
* @param coll
|
|
54
|
+
* @param filter
|
|
55
|
+
*/
|
|
56
|
+
existsBy<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<boolean>;
|
|
57
|
+
/**
|
|
58
|
+
* 按id进行删除
|
|
59
|
+
* @param coll
|
|
60
|
+
* @param id
|
|
61
|
+
* @returns
|
|
62
|
+
*/
|
|
63
|
+
deleteById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<boolean>;
|
|
64
|
+
/**
|
|
65
|
+
* 仅删除一条记录
|
|
66
|
+
* @param coll
|
|
67
|
+
* @param filter
|
|
68
|
+
* @returns
|
|
69
|
+
*/
|
|
70
|
+
deleteOne<T extends Document>(coll: MongoCollection<T>, filter: Partial<T>): Promise<boolean>;
|
|
71
|
+
/**
|
|
72
|
+
* 按条件删除数据,返回删除的记录行数.
|
|
73
|
+
* 务必谨慎使用,大批量删除容易带来性能问题,造成线上事故.
|
|
74
|
+
* @param coll
|
|
75
|
+
* @param filter
|
|
76
|
+
* @returns 被删除记录的数量
|
|
77
|
+
*/
|
|
78
|
+
deleteMany<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<number>;
|
|
79
|
+
/**
|
|
80
|
+
* 查询集合中所有记录.谨慎使用!
|
|
81
|
+
* @param coll
|
|
82
|
+
* @returns
|
|
83
|
+
*/
|
|
84
|
+
findAll<T extends Document>(coll: MongoCollection<T>): Promise<MongoDocWithId<T>[]>;
|
|
85
|
+
/**
|
|
86
|
+
* 根据给定的条件查找第一条符合条件的记录
|
|
87
|
+
* @param coll
|
|
88
|
+
* @param filter
|
|
89
|
+
* @returns
|
|
90
|
+
*/
|
|
91
|
+
findFirst<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<MongoDocWithId<T> | null>;
|
|
92
|
+
/**
|
|
93
|
+
* 插入新记录
|
|
94
|
+
* @param coll
|
|
95
|
+
* @param data
|
|
96
|
+
* @returns
|
|
97
|
+
*/
|
|
98
|
+
insert<T extends Document>(coll: MongoCollection<T>, data: T & {
|
|
99
|
+
_id?: MongoDocId;
|
|
100
|
+
}): Promise<MongoDocWithId<T>>;
|
|
101
|
+
/**
|
|
102
|
+
* 插入多条,批量插入.
|
|
103
|
+
* @param coll
|
|
104
|
+
* @param list
|
|
105
|
+
*/
|
|
106
|
+
insertMany<T extends Document>(coll: MongoCollection<T>, list: Array<T & {
|
|
107
|
+
_id?: MongoDocId;
|
|
108
|
+
}>): Promise<MongoDocWithId<T>[]>;
|
|
109
|
+
/**
|
|
110
|
+
* 更新,更新完整的文档内容。
|
|
111
|
+
* @param coll 集合信息
|
|
112
|
+
* @param data 要更新的数据,必须包含 _id 字段,支持 mongo 更新语法 $inc 等
|
|
113
|
+
* @returns 返回最新的数据
|
|
114
|
+
* @throws MongoDBException 当无法完成更新时抛出
|
|
115
|
+
*/
|
|
116
|
+
update<T extends Document>(coll: MongoCollection<T>, data: MongoDocWithId<T>): Promise<MongoDocWithId<T>>;
|
|
117
|
+
/**
|
|
118
|
+
* 仅更新一条记录
|
|
119
|
+
* @param coll
|
|
120
|
+
* @param filter
|
|
121
|
+
* @param updater
|
|
122
|
+
*/
|
|
123
|
+
updateOne<T extends Document>(coll: MongoCollection<T>, filter: Partial<T>, updater: UpdateFilter<T>): Promise<boolean>;
|
|
124
|
+
/**
|
|
125
|
+
* 局部更新,仅更新部分字段,可对字段做递增或数组元组的处理。
|
|
126
|
+
* @param coll 集合信息
|
|
127
|
+
* @param id id
|
|
128
|
+
* @param updater 更新内容
|
|
129
|
+
* @returns 更新是否成功
|
|
130
|
+
*/
|
|
131
|
+
partialUpdate<T extends Document>(coll: MongoCollection<T>, id: MongoDocId, updater: UpdateFilter<T>): Promise<boolean>;
|
|
132
|
+
/**
|
|
133
|
+
* 根据条件更新多条记录,和 partialUpdate 区别是可以根据过滤条件来处理多条记录。
|
|
134
|
+
* @param coll 集合
|
|
135
|
+
* @param filter 过滤规则
|
|
136
|
+
* @param updater 更新内容
|
|
137
|
+
* @returns 此次更新的记录数
|
|
138
|
+
*/
|
|
139
|
+
updateMany<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, updater: UpdateFilter<T>): Promise<number>;
|
|
140
|
+
/**
|
|
141
|
+
* 条件查询
|
|
142
|
+
* @param coll 集合信息
|
|
143
|
+
* @param filter 过滤条件
|
|
144
|
+
* @param opts 额外的选项
|
|
145
|
+
* @returns
|
|
146
|
+
*/
|
|
147
|
+
find<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, opts?: {
|
|
148
|
+
/**
|
|
149
|
+
* 偏移,需要 limit 有值才可以
|
|
150
|
+
*/
|
|
151
|
+
offset?: number;
|
|
152
|
+
/**
|
|
153
|
+
* 限制返回的数量
|
|
154
|
+
*/
|
|
155
|
+
limit?: number;
|
|
156
|
+
/**
|
|
157
|
+
* 排序规则,按先后顺序放入,每个规则是一个元组,第一个元素是字段名称,第二个元素是顺序
|
|
158
|
+
*/
|
|
159
|
+
orderBy?: Array<[keyof MongoDocWithId<T>, 'asc' | 'desc']>;
|
|
160
|
+
}): Promise<MongoDocWithId<T>[]>;
|
|
161
|
+
/**
|
|
162
|
+
* 查询符合条件的文档数量。请谨慎使用,count 是不能从索引直接读取的,只能实时计数,使用不当容易造成性能问题,引发线上事故。
|
|
163
|
+
* @param coll
|
|
164
|
+
* @param filter
|
|
165
|
+
* @returns
|
|
166
|
+
*/
|
|
167
|
+
count<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<number>;
|
|
168
|
+
/**
|
|
169
|
+
* 分页查询。谨慎使用,不建议对规模较大的数据查询直接使用分页。
|
|
170
|
+
* @param coll 集合信息
|
|
171
|
+
* @param filter 过滤条件
|
|
172
|
+
* @param opts 分页参数
|
|
173
|
+
*/
|
|
174
|
+
paginate<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, opts: {
|
|
175
|
+
/**
|
|
176
|
+
* 页码,从1开始,第一页是 1
|
|
177
|
+
*/
|
|
178
|
+
pn: number;
|
|
179
|
+
/**
|
|
180
|
+
* 每页的数据量大小
|
|
181
|
+
*/
|
|
182
|
+
pz: number;
|
|
183
|
+
/**
|
|
184
|
+
* 排序规则,按先后顺序放入,每个规则是一个元组,第一个元素是字段名称,第二个元素是顺序
|
|
185
|
+
*/
|
|
186
|
+
orderBy?: Array<[keyof MongoDocWithId<T>, 'asc' | 'desc']>;
|
|
187
|
+
}): Promise<MongoPage<MongoDocWithId<T>>>;
|
|
188
|
+
}
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import { Db, MongoClient, ReadConcernLike, ReadPreferenceLike, WriteConcern } from 'mongodb';
|
|
2
|
-
import { MongoDBConfig } from '../config';
|
|
3
|
-
import { BaseMongoManager } from './base';
|
|
4
|
-
import { MongoTxSession } from './tx';
|
|
5
|
-
/**
|
|
6
|
-
* mysql 分页查询结果
|
|
7
|
-
*/
|
|
8
|
-
export interface MongoPage<T> {
|
|
9
|
-
total: number;
|
|
10
|
-
list: T[];
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* mongodb 管理器,目前尚未实现事务的处理.
|
|
14
|
-
*/
|
|
15
|
-
export declare class MongoDBManager extends BaseMongoManager {
|
|
16
|
-
private readonly client;
|
|
17
|
-
/**
|
|
18
|
-
* mongodb 管理器构建
|
|
19
|
-
* @param db 库
|
|
20
|
-
*/
|
|
21
|
-
constructor(config: MongoDBConfig, db: Db, client: MongoClient);
|
|
22
|
-
/**
|
|
23
|
-
* 事务操作。mongodb 的版本必须在 4.0 以上,连接的必须是副本集节点或分片集群的mongos节点。
|
|
24
|
-
* @param ops 操作逻辑,所有事务相关的操作都必须使用函数提供的 session 对象
|
|
25
|
-
* @param opts mongo 事务选项
|
|
26
|
-
*/
|
|
27
|
-
tx<T>(ops: (session: MongoTxSession) => Promise<T>, opts?: {
|
|
28
|
-
/** 超时时间,单位毫秒,设置后会覆盖全局设置,设置为0表示不限制 */
|
|
29
|
-
timeout?: number;
|
|
30
|
-
/** A default read concern for commands in this transaction */
|
|
31
|
-
readConcern?: ReadConcernLike;
|
|
32
|
-
/** A default writeConcern for commands in this transaction */
|
|
33
|
-
writeConcern?: WriteConcern;
|
|
34
|
-
/** A default read preference for commands in this transaction */
|
|
35
|
-
readPreference?: ReadPreferenceLike;
|
|
36
|
-
}): Promise<T>;
|
|
37
|
-
}
|
|
38
|
-
export { BaseMongoManager, MongoTxSession };
|
|
1
|
+
import { Db, MongoClient, ReadConcernLike, ReadPreferenceLike, WriteConcern } from 'mongodb';
|
|
2
|
+
import { MongoDBConfig } from '../config';
|
|
3
|
+
import { BaseMongoManager } from './base';
|
|
4
|
+
import { MongoTxSession } from './tx';
|
|
5
|
+
/**
|
|
6
|
+
* mysql 分页查询结果
|
|
7
|
+
*/
|
|
8
|
+
export interface MongoPage<T> {
|
|
9
|
+
total: number;
|
|
10
|
+
list: T[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* mongodb 管理器,目前尚未实现事务的处理.
|
|
14
|
+
*/
|
|
15
|
+
export declare class MongoDBManager extends BaseMongoManager {
|
|
16
|
+
private readonly client;
|
|
17
|
+
/**
|
|
18
|
+
* mongodb 管理器构建
|
|
19
|
+
* @param db 库
|
|
20
|
+
*/
|
|
21
|
+
constructor(config: MongoDBConfig, db: Db, client: MongoClient);
|
|
22
|
+
/**
|
|
23
|
+
* 事务操作。mongodb 的版本必须在 4.0 以上,连接的必须是副本集节点或分片集群的mongos节点。
|
|
24
|
+
* @param ops 操作逻辑,所有事务相关的操作都必须使用函数提供的 session 对象
|
|
25
|
+
* @param opts mongo 事务选项
|
|
26
|
+
*/
|
|
27
|
+
tx<T>(ops: (session: MongoTxSession) => Promise<T>, opts?: {
|
|
28
|
+
/** 超时时间,单位毫秒,设置后会覆盖全局设置,设置为0表示不限制 */
|
|
29
|
+
timeout?: number;
|
|
30
|
+
/** A default read concern for commands in this transaction */
|
|
31
|
+
readConcern?: ReadConcernLike;
|
|
32
|
+
/** A default writeConcern for commands in this transaction */
|
|
33
|
+
writeConcern?: WriteConcern;
|
|
34
|
+
/** A default read preference for commands in this transaction */
|
|
35
|
+
readPreference?: ReadPreferenceLike;
|
|
36
|
+
}): Promise<T>;
|
|
37
|
+
}
|
|
38
|
+
export { BaseMongoManager, MongoTxSession };
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import { ClientSession, Db, Document, Filter, UpdateFilter } from 'mongodb';
|
|
2
|
-
import { MongoCollection } from '../collection';
|
|
3
|
-
import { MongoDBConfig } from '../config';
|
|
4
|
-
import { MongoDocId, MongoDocWithId } from '../doc';
|
|
5
|
-
import { MongoPage } from './base';
|
|
6
|
-
import { MongoTxSession } from './tx';
|
|
7
|
-
/**
|
|
8
|
-
* 严格事务会话
|
|
9
|
-
*/
|
|
10
|
-
export declare class MongoStrictTxSession extends MongoTxSession {
|
|
11
|
-
#private;
|
|
12
|
-
constructor(config: MongoDBConfig, db: Db, session: ClientSession);
|
|
13
|
-
findById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<MongoDocWithId<T> | null>;
|
|
14
|
-
findByIdIn<T extends Document>(coll: MongoCollection<T>, ids: MongoDocId[]): Promise<MongoDocWithId<T>[]>;
|
|
15
|
-
existsBy<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<boolean>;
|
|
16
|
-
deleteById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<boolean>;
|
|
17
|
-
deleteOne<T extends Document>(coll: MongoCollection<T>, filter: Partial<T>): Promise<boolean>;
|
|
18
|
-
deleteMany<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<number>;
|
|
19
|
-
findAll<T extends Document>(coll: MongoCollection<T>): Promise<MongoDocWithId<T>[]>;
|
|
20
|
-
findFirst<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<MongoDocWithId<T> | null>;
|
|
21
|
-
insert<T extends Document>(coll: MongoCollection<T>, data: T & {
|
|
22
|
-
_id?: MongoDocId | undefined;
|
|
23
|
-
}): Promise<MongoDocWithId<T>>;
|
|
24
|
-
insertMany<T extends Document>(coll: MongoCollection<T>, list: (T & {
|
|
25
|
-
_id?: MongoDocId | undefined;
|
|
26
|
-
})[]): Promise<MongoDocWithId<T>[]>;
|
|
27
|
-
update<T extends Document>(coll: MongoCollection<T>, data: MongoDocWithId<T>): Promise<MongoDocWithId<T>>;
|
|
28
|
-
partialUpdate<T extends Document>(coll: MongoCollection<T>, id: MongoDocId, updator: UpdateFilter<T>): Promise<boolean>;
|
|
29
|
-
updateMany<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, updator: UpdateFilter<T>): Promise<number>;
|
|
30
|
-
find<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, opts?: {
|
|
31
|
-
offset?: number | undefined;
|
|
32
|
-
limit?: number | undefined;
|
|
33
|
-
orderBy?: ['_id' | keyof T, 'asc' | 'desc'][] | undefined;
|
|
34
|
-
} | undefined): Promise<MongoDocWithId<T>[]>;
|
|
35
|
-
count<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<number>;
|
|
36
|
-
paginate<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, opts: {
|
|
37
|
-
pn: number;
|
|
38
|
-
pz: number;
|
|
39
|
-
orderBy?: ['_id' | keyof T, 'asc' | 'desc'][] | undefined;
|
|
40
|
-
}): Promise<MongoPage<MongoDocWithId<T>>>;
|
|
41
|
-
}
|
|
1
|
+
import { ClientSession, Db, Document, Filter, UpdateFilter } from 'mongodb';
|
|
2
|
+
import { MongoCollection } from '../collection';
|
|
3
|
+
import { MongoDBConfig } from '../config';
|
|
4
|
+
import { MongoDocId, MongoDocWithId } from '../doc';
|
|
5
|
+
import { MongoPage } from './base';
|
|
6
|
+
import { MongoTxSession } from './tx';
|
|
7
|
+
/**
|
|
8
|
+
* 严格事务会话
|
|
9
|
+
*/
|
|
10
|
+
export declare class MongoStrictTxSession extends MongoTxSession {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(config: MongoDBConfig, db: Db, session: ClientSession);
|
|
13
|
+
findById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<MongoDocWithId<T> | null>;
|
|
14
|
+
findByIdIn<T extends Document>(coll: MongoCollection<T>, ids: MongoDocId[]): Promise<MongoDocWithId<T>[]>;
|
|
15
|
+
existsBy<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<boolean>;
|
|
16
|
+
deleteById<T extends Document>(coll: MongoCollection<T>, id: MongoDocId): Promise<boolean>;
|
|
17
|
+
deleteOne<T extends Document>(coll: MongoCollection<T>, filter: Partial<T>): Promise<boolean>;
|
|
18
|
+
deleteMany<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<number>;
|
|
19
|
+
findAll<T extends Document>(coll: MongoCollection<T>): Promise<MongoDocWithId<T>[]>;
|
|
20
|
+
findFirst<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<MongoDocWithId<T> | null>;
|
|
21
|
+
insert<T extends Document>(coll: MongoCollection<T>, data: T & {
|
|
22
|
+
_id?: MongoDocId | undefined;
|
|
23
|
+
}): Promise<MongoDocWithId<T>>;
|
|
24
|
+
insertMany<T extends Document>(coll: MongoCollection<T>, list: (T & {
|
|
25
|
+
_id?: MongoDocId | undefined;
|
|
26
|
+
})[]): Promise<MongoDocWithId<T>[]>;
|
|
27
|
+
update<T extends Document>(coll: MongoCollection<T>, data: MongoDocWithId<T>): Promise<MongoDocWithId<T>>;
|
|
28
|
+
partialUpdate<T extends Document>(coll: MongoCollection<T>, id: MongoDocId, updator: UpdateFilter<T>): Promise<boolean>;
|
|
29
|
+
updateMany<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, updator: UpdateFilter<T>): Promise<number>;
|
|
30
|
+
find<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, opts?: {
|
|
31
|
+
offset?: number | undefined;
|
|
32
|
+
limit?: number | undefined;
|
|
33
|
+
orderBy?: ['_id' | keyof T, 'asc' | 'desc'][] | undefined;
|
|
34
|
+
} | undefined): Promise<MongoDocWithId<T>[]>;
|
|
35
|
+
count<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>): Promise<number>;
|
|
36
|
+
paginate<T extends Document>(coll: MongoCollection<T>, filter: Filter<MongoDocWithId<T>>, opts: {
|
|
37
|
+
pn: number;
|
|
38
|
+
pz: number;
|
|
39
|
+
orderBy?: ['_id' | keyof T, 'asc' | 'desc'][] | undefined;
|
|
40
|
+
}): Promise<MongoPage<MongoDocWithId<T>>>;
|
|
41
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { ClientSession, Db } from 'mongodb';
|
|
2
|
-
import { MongoDBConfig } from '../config';
|
|
3
|
-
import { BaseMongoManager } from './base';
|
|
4
|
-
/**
|
|
5
|
-
* 事务会话
|
|
6
|
-
*/
|
|
7
|
-
export declare class MongoTxSession extends BaseMongoManager {
|
|
8
|
-
#private;
|
|
9
|
-
constructor(config: MongoDBConfig, db: Db, session: ClientSession);
|
|
10
|
-
protected timingQuery<T, D extends {
|
|
11
|
-
op: string;
|
|
12
|
-
coll: string;
|
|
13
|
-
}>(opts: {
|
|
14
|
-
query: () => Promise<T>;
|
|
15
|
-
desc: () => D;
|
|
16
|
-
}): Promise<T>;
|
|
17
|
-
/**
|
|
18
|
-
* 中止,被中止后的会话不能再进行任何操作
|
|
19
|
-
*/
|
|
20
|
-
abort(): void;
|
|
21
|
-
}
|
|
1
|
+
import { ClientSession, Db } from 'mongodb';
|
|
2
|
+
import { MongoDBConfig } from '../config';
|
|
3
|
+
import { BaseMongoManager } from './base';
|
|
4
|
+
/**
|
|
5
|
+
* 事务会话
|
|
6
|
+
*/
|
|
7
|
+
export declare class MongoTxSession extends BaseMongoManager {
|
|
8
|
+
#private;
|
|
9
|
+
constructor(config: MongoDBConfig, db: Db, session: ClientSession);
|
|
10
|
+
protected timingQuery<T, D extends {
|
|
11
|
+
op: string;
|
|
12
|
+
coll: string;
|
|
13
|
+
}>(opts: {
|
|
14
|
+
query: () => Promise<T>;
|
|
15
|
+
desc: () => D;
|
|
16
|
+
}): Promise<T>;
|
|
17
|
+
/**
|
|
18
|
+
* 中止,被中止后的会话不能再进行任何操作
|
|
19
|
+
*/
|
|
20
|
+
abort(): void;
|
|
21
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Db } from 'mongodb';
|
|
2
|
-
/**
|
|
3
|
-
* 迁移版本,是一个函数,可以在函数的内部通过 mongodb 驱动提升的 api 来完成操作。
|
|
4
|
-
* 注:驱动里有些 api 是没有的,和 mongodb 的脚本有区分,但是有些是可以通过 db.command() 来替代的。
|
|
5
|
-
*/
|
|
6
|
-
export type MongoMigrationVersion = (db: Db) => Promise<void>;
|
|
7
|
-
/**
|
|
8
|
-
* 迁移
|
|
9
|
-
* @param db
|
|
10
|
-
* @param versionList
|
|
11
|
-
*/
|
|
12
|
-
export declare function migrate(db: Db, versionList: MongoMigrationVersion[]): Promise<void>;
|
|
1
|
+
import { Db } from 'mongodb';
|
|
2
|
+
/**
|
|
3
|
+
* 迁移版本,是一个函数,可以在函数的内部通过 mongodb 驱动提升的 api 来完成操作。
|
|
4
|
+
* 注:驱动里有些 api 是没有的,和 mongodb 的脚本有区分,但是有些是可以通过 db.command() 来替代的。
|
|
5
|
+
*/
|
|
6
|
+
export type MongoMigrationVersion = (db: Db) => Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* 迁移
|
|
9
|
+
* @param db
|
|
10
|
+
* @param versionList
|
|
11
|
+
*/
|
|
12
|
+
export declare function migrate(db: Db, versionList: MongoMigrationVersion[]): Promise<void>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Interceptor } from './interceptor';
|
|
2
|
-
/**
|
|
3
|
-
* 访问日志拦截器,记录请求信息
|
|
4
|
-
* @param exchange
|
|
5
|
-
* @param next
|
|
6
|
-
*/
|
|
7
|
-
export declare const accessLogInterceptor: Interceptor;
|
|
1
|
+
import { Interceptor } from './interceptor';
|
|
2
|
+
/**
|
|
3
|
+
* 访问日志拦截器,记录请求信息
|
|
4
|
+
* @param exchange
|
|
5
|
+
* @param next
|
|
6
|
+
*/
|
|
7
|
+
export declare const accessLogInterceptor: Interceptor;
|