@steedos/service-fields-indexs 3.0.0-beta.99 → 3.0.1
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/collection-indexes/cfs.instances.files.index.js +40 -0
- package/collection-indexes/cms_categories.index.js +26 -0
- package/collection-indexes/cms_posts.index.js +34 -0
- package/collection-indexes/default_db.js +27 -8
- package/collection-indexes/flow_positions.index.js +60 -0
- package/collection-indexes/flow_roles.index.js +35 -0
- package/collection-indexes/flows.index.js +116 -0
- package/collection-indexes/forms.index.js +69 -0
- package/collection-indexes/instance_number_rules.index.js +26 -0
- package/collection-indexes/instance_record_queue.index.js +33 -0
- package/collection-indexes/instance_tasks.index.js +35 -51
- package/collection-indexes/instances.index.js +242 -0
- package/collection-indexes/organizations.index.js +88 -0
- package/collection-indexes/process_delegation_rules.index.js +26 -0
- package/collection-indexes/space_user_signs.index.js +26 -0
- package/collection-indexes/space_users.index.js +94 -0
- package/collection-indexes/spaces.index.js +50 -0
- package/collection-indexes/steedos_keyvalue.index.js +60 -0
- package/collection-indexes/users.index.js +145 -0
- package/collection-indexes/webhooks.index.js +29 -0
- package/collection-indexes/workflow_nav.index.js +37 -0
- package/package.json +2 -3
- package/package.service.js +4 -22
- package/meteor-collection-indexs/cfs.instances.files.object.js +0 -6
- package/meteor-collection-indexs/cms_categories.object.js +0 -15
- package/meteor-collection-indexs/cms_posts.object.js +0 -22
- package/meteor-collection-indexs/flow_positions.object.js +0 -34
- package/meteor-collection-indexs/flow_roles.object.js +0 -15
- package/meteor-collection-indexs/flows.object.js +0 -85
- package/meteor-collection-indexs/forms.object.js +0 -48
- package/meteor-collection-indexs/instance_number_rules.object.js +0 -8
- package/meteor-collection-indexs/instance_record_queue.object.js +0 -11
- package/meteor-collection-indexs/instances.object.js +0 -221
- package/meteor-collection-indexs/organizations.object.js +0 -65
- package/meteor-collection-indexs/process_delegation_rules.object.js +0 -10
- package/meteor-collection-indexs/space_user_signs.object.js +0 -9
- package/meteor-collection-indexs/space_users.object.js +0 -74
- package/meteor-collection-indexs/spaces.object.js +0 -27
- package/meteor-collection-indexs/steedos_keyvalue.object.js +0 -45
- package/meteor-collection-indexs/users.object.js +0 -109
- package/meteor-collection-indexs/webhooks.object.js +0 -18
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
// instances_indexes.js
|
|
2
|
+
const {
|
|
3
|
+
createIndexIfNotExists,
|
|
4
|
+
getCollection
|
|
5
|
+
} = require('./default_db');
|
|
6
|
+
|
|
7
|
+
async function run() {
|
|
8
|
+
const collection = await getCollection('instances');
|
|
9
|
+
|
|
10
|
+
if (!collection) {
|
|
11
|
+
console.error('无法获取集合 instances');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 使用 try-catch 包装可能出错的索引创建
|
|
16
|
+
try {
|
|
17
|
+
await createIndexIfNotExists(collection, 'submitter', {
|
|
18
|
+
"submitter": 1
|
|
19
|
+
}, {
|
|
20
|
+
background: true
|
|
21
|
+
});
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.warn('创建 submitter 索引时出错:', error.message);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
try {
|
|
27
|
+
await createIndexIfNotExists(collection, 'applicant', {
|
|
28
|
+
"applicant": 1
|
|
29
|
+
}, {
|
|
30
|
+
background: true
|
|
31
|
+
});
|
|
32
|
+
} catch (error) {
|
|
33
|
+
console.warn('创建 applicant 索引时出错:', error.message);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
try {
|
|
37
|
+
await createIndexIfNotExists(collection, 'outbox_users', {
|
|
38
|
+
"outbox_users": 1
|
|
39
|
+
}, {
|
|
40
|
+
background: true
|
|
41
|
+
});
|
|
42
|
+
} catch (error) {
|
|
43
|
+
console.warn('创建 outbox_users 索引时出错:', error.message);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// 基础索引
|
|
47
|
+
await createIndexIfNotExists(collection, 'space_is_deleted', {
|
|
48
|
+
"space": 1,
|
|
49
|
+
"is_deleted": 1
|
|
50
|
+
}, {
|
|
51
|
+
background: true
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
await createIndexIfNotExists(collection, 'state', {
|
|
55
|
+
"state": 1
|
|
56
|
+
}, {
|
|
57
|
+
background: true
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
await createIndexIfNotExists(collection, 'is_archived', {
|
|
61
|
+
"is_archived": 1
|
|
62
|
+
}, {
|
|
63
|
+
background: true
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
await createIndexIfNotExists(collection, 'id_submit_date', {
|
|
67
|
+
"_id": 1,
|
|
68
|
+
"submit_date": 1
|
|
69
|
+
}, {
|
|
70
|
+
background: true
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
await createIndexIfNotExists(collection, 'space_flow_state_submit_date', {
|
|
74
|
+
"space": 1,
|
|
75
|
+
"flow": 1,
|
|
76
|
+
"state": 1,
|
|
77
|
+
"submit_date": 1
|
|
78
|
+
}, {
|
|
79
|
+
background: true
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
await createIndexIfNotExists(collection, 'created_modified', {
|
|
83
|
+
"created": 1,
|
|
84
|
+
"modified": 1
|
|
85
|
+
}, {
|
|
86
|
+
background: true
|
|
87
|
+
});
|
|
88
|
+
|
|
89
|
+
await createIndexIfNotExists(collection, 'space_state_is_deleted', {
|
|
90
|
+
"space": 1,
|
|
91
|
+
"state": 1,
|
|
92
|
+
"is_deleted": 1
|
|
93
|
+
}, {
|
|
94
|
+
background: true
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
// 根据配置决定是否创建 keywords 索引
|
|
98
|
+
const objectql = require("@steedos/objectql");
|
|
99
|
+
const config = objectql.getSteedosConfig();
|
|
100
|
+
if (!config.datasources.default.documentDB) {
|
|
101
|
+
await createIndexIfNotExists(collection, 'keywords_hashed', {
|
|
102
|
+
"keywords": "hashed"
|
|
103
|
+
}, {
|
|
104
|
+
background: true
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// 复合索引
|
|
109
|
+
await createIndexIfNotExists(collection, 'space_submit_date_is_deleted_final_decision_state', {
|
|
110
|
+
"space": 1,
|
|
111
|
+
"submit_date": 1,
|
|
112
|
+
"is_deleted": 1,
|
|
113
|
+
"final_decision": 1,
|
|
114
|
+
"state": 1
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
await createIndexIfNotExists(collection, 'traces_approves_type_handler', {
|
|
118
|
+
"traces.approves.type": 1,
|
|
119
|
+
"traces.approves.handler": 1
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
try {
|
|
123
|
+
await createIndexIfNotExists(collection, 'category', {
|
|
124
|
+
"category": 1
|
|
125
|
+
}, {
|
|
126
|
+
background: true
|
|
127
|
+
});
|
|
128
|
+
} catch (error) {
|
|
129
|
+
console.warn('创建 category 索引时出错:', error.message);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
await createIndexIfNotExists(collection, 'record_ids', {
|
|
133
|
+
"record_ids.ids": 1,
|
|
134
|
+
"record_ids.o": 1,
|
|
135
|
+
}, {
|
|
136
|
+
background: true
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
await createIndexIfNotExists(collection, 'traces_approves_auto_submitted', {
|
|
140
|
+
"traces.approves.auto_submitted": 1
|
|
141
|
+
}, {
|
|
142
|
+
background: true
|
|
143
|
+
});
|
|
144
|
+
|
|
145
|
+
// 监控箱-管理员
|
|
146
|
+
try {
|
|
147
|
+
await createIndexIfNotExists(collection, 'monitor_admin', {
|
|
148
|
+
space: 1,
|
|
149
|
+
state: 1,
|
|
150
|
+
submit_date: -1,
|
|
151
|
+
}, { background: true });
|
|
152
|
+
} catch (error) {
|
|
153
|
+
console.warn('创建 monitor_admin 索引时出错:', error.message);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
try {
|
|
157
|
+
await createIndexIfNotExists(collection, 'state_category_is_deleted_space', {
|
|
158
|
+
"state": 1,
|
|
159
|
+
"category": 1,
|
|
160
|
+
"is_deleted": 1,
|
|
161
|
+
"space": 1
|
|
162
|
+
});
|
|
163
|
+
} catch (error) {
|
|
164
|
+
console.warn('创建 state_category_is_deleted_space 索引时出错:', error.message);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// 监控箱-用户
|
|
168
|
+
try {
|
|
169
|
+
await createIndexIfNotExists(collection, 'monitor_user', {
|
|
170
|
+
space: 1,
|
|
171
|
+
submit_date: -1,
|
|
172
|
+
flow: 1,
|
|
173
|
+
category: 1,
|
|
174
|
+
state: 1,
|
|
175
|
+
is_deleted: 1,
|
|
176
|
+
name: 1,
|
|
177
|
+
}, { background: true });
|
|
178
|
+
} catch (error) {
|
|
179
|
+
console.warn('创建 monitor_user 索引时出错:', error.message);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// 草稿箱
|
|
183
|
+
try {
|
|
184
|
+
await createIndexIfNotExists(collection, 'draft', {
|
|
185
|
+
space: 1,
|
|
186
|
+
submitter: 1,
|
|
187
|
+
state: 1,
|
|
188
|
+
modified: -1,
|
|
189
|
+
}, { background: true });
|
|
190
|
+
} catch (error) {
|
|
191
|
+
console.warn('创建 draft 索引时出错:', error.message);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
// 进行中
|
|
195
|
+
try {
|
|
196
|
+
await createIndexIfNotExists(collection, 'pending', {
|
|
197
|
+
space: 1,
|
|
198
|
+
state: 1,
|
|
199
|
+
modified: -1,
|
|
200
|
+
}, { background: true });
|
|
201
|
+
} catch (error) {
|
|
202
|
+
console.warn('创建 pending 索引时出错:', error.message);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
try {
|
|
206
|
+
await createIndexIfNotExists(collection, 'pending_applicant', {
|
|
207
|
+
space: 1,
|
|
208
|
+
state: 1,
|
|
209
|
+
applicant: 1,
|
|
210
|
+
modified: -1,
|
|
211
|
+
}, { background: true });
|
|
212
|
+
} catch (error) {
|
|
213
|
+
console.warn('创建 pending_applicant 索引时出错:', error.message);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// 推送相关索引
|
|
217
|
+
try {
|
|
218
|
+
await createIndexIfNotExists(collection, 'push_manager_inbox_users_category', {
|
|
219
|
+
inbox_users: 1,
|
|
220
|
+
category: 1,
|
|
221
|
+
}, {
|
|
222
|
+
background: true
|
|
223
|
+
});
|
|
224
|
+
} catch (error) {
|
|
225
|
+
console.warn('创建 push_manager_inbox_users_category 索引时出错:', error.message);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
try {
|
|
229
|
+
await createIndexIfNotExists(collection, 'push_manager_cc_users_category', {
|
|
230
|
+
cc_users: 1,
|
|
231
|
+
category: 1,
|
|
232
|
+
}, {
|
|
233
|
+
background: true
|
|
234
|
+
});
|
|
235
|
+
} catch (error) {
|
|
236
|
+
console.warn('创建 push_manager_cc_users_category 索引时出错:', error.message);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
module.exports = {
|
|
241
|
+
run
|
|
242
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// organizations_indexes.js
|
|
2
|
+
const {
|
|
3
|
+
createIndexIfNotExists,
|
|
4
|
+
getCollection
|
|
5
|
+
} = require('./default_db');
|
|
6
|
+
|
|
7
|
+
async function run() {
|
|
8
|
+
const collection = await getCollection('organizations');
|
|
9
|
+
|
|
10
|
+
if (!collection) {
|
|
11
|
+
console.error('无法获取集合 organizations');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 创建 space 和 users 复合索引
|
|
16
|
+
await createIndexIfNotExists(collection, 'space_users', {
|
|
17
|
+
"space": 1,
|
|
18
|
+
"users": 1
|
|
19
|
+
}, {
|
|
20
|
+
background: true
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// 创建 _id 和 space 复合索引
|
|
24
|
+
await createIndexIfNotExists(collection, 'id_space', {
|
|
25
|
+
"_id": 1,
|
|
26
|
+
"space": 1
|
|
27
|
+
}, {
|
|
28
|
+
background: true
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
// 创建 name、space、_id 和 parent 复合索引
|
|
32
|
+
await createIndexIfNotExists(collection, 'name_space_id_parent', {
|
|
33
|
+
"name": 1,
|
|
34
|
+
"space": 1,
|
|
35
|
+
"_id": 1,
|
|
36
|
+
"parent": 1
|
|
37
|
+
}, {
|
|
38
|
+
background: true
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
// 创建 space 和 is_deleted 复合索引
|
|
42
|
+
await createIndexIfNotExists(collection, 'space_is_deleted', {
|
|
43
|
+
"space": 1,
|
|
44
|
+
"is_deleted": 1
|
|
45
|
+
}, {
|
|
46
|
+
background: true
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// 创建 parents 单字段索引(使用 try-catch 处理可能的错误)
|
|
50
|
+
try {
|
|
51
|
+
await createIndexIfNotExists(collection, 'parents', {
|
|
52
|
+
"parents": 1
|
|
53
|
+
}, {
|
|
54
|
+
background: true
|
|
55
|
+
});
|
|
56
|
+
} catch (error) {
|
|
57
|
+
console.warn('创建 parents 索引时出错:', error.message);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// 创建 parents 和 is_deleted 复合索引
|
|
61
|
+
await createIndexIfNotExists(collection, 'parents_is_deleted', {
|
|
62
|
+
"parents": 1,
|
|
63
|
+
"is_deleted": 1
|
|
64
|
+
}, {
|
|
65
|
+
background: true
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
// 创建 space 和 created 复合索引
|
|
69
|
+
await createIndexIfNotExists(collection, 'space_created', {
|
|
70
|
+
"space": 1,
|
|
71
|
+
"created": 1
|
|
72
|
+
}, {
|
|
73
|
+
background: true
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
// 创建 space、created 和 modified 复合索引
|
|
77
|
+
await createIndexIfNotExists(collection, 'space_created_modified', {
|
|
78
|
+
"space": 1,
|
|
79
|
+
"created": 1,
|
|
80
|
+
"modified": 1
|
|
81
|
+
}, {
|
|
82
|
+
background: true
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
module.exports = {
|
|
87
|
+
run
|
|
88
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// process_delegation_rules_indexes.js
|
|
2
|
+
const {
|
|
3
|
+
createIndexIfNotExists,
|
|
4
|
+
getCollection
|
|
5
|
+
} = require('./default_db');
|
|
6
|
+
|
|
7
|
+
async function run() {
|
|
8
|
+
const collection = await getCollection('process_delegation_rules');
|
|
9
|
+
|
|
10
|
+
if (!collection) {
|
|
11
|
+
console.error('无法获取集合 process_delegation_rules');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 创建 enabled 和 end_time 复合索引
|
|
16
|
+
await createIndexIfNotExists(collection, 'enabled_end_time', {
|
|
17
|
+
"enabled": 1,
|
|
18
|
+
"end_time": 1
|
|
19
|
+
}, {
|
|
20
|
+
background: true
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = {
|
|
25
|
+
run
|
|
26
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// space_user_signs_indexes.js
|
|
2
|
+
const {
|
|
3
|
+
createIndexIfNotExists,
|
|
4
|
+
getCollection
|
|
5
|
+
} = require('./default_db');
|
|
6
|
+
|
|
7
|
+
async function run() {
|
|
8
|
+
const collection = await getCollection('space_user_signs');
|
|
9
|
+
|
|
10
|
+
if (!collection) {
|
|
11
|
+
console.error('无法获取集合 space_user_signs');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 创建 space 和 user 复合索引
|
|
16
|
+
await createIndexIfNotExists(collection, 'space_user', {
|
|
17
|
+
"space": 1,
|
|
18
|
+
"user": 1
|
|
19
|
+
}, {
|
|
20
|
+
background: true
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
module.exports = {
|
|
25
|
+
run
|
|
26
|
+
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// space_users_indexes.js
|
|
2
|
+
const {
|
|
3
|
+
createIndexIfNotExists,
|
|
4
|
+
getCollection
|
|
5
|
+
} = require('./default_db');
|
|
6
|
+
|
|
7
|
+
async function run() {
|
|
8
|
+
const collection = await getCollection('space_users');
|
|
9
|
+
|
|
10
|
+
if (!collection) {
|
|
11
|
+
console.error('无法获取集合 space_users');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 创建 user_accepted 单字段索引
|
|
16
|
+
await createIndexIfNotExists(collection, 'user_accepted', {
|
|
17
|
+
"user_accepted": 1
|
|
18
|
+
}, {
|
|
19
|
+
background: true
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// 创建 user 和 user_accepted 复合索引
|
|
23
|
+
await createIndexIfNotExists(collection, 'user_user_accepted', {
|
|
24
|
+
"user": 1,
|
|
25
|
+
"user_accepted": 1
|
|
26
|
+
}, {
|
|
27
|
+
background: true
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// 创建 user 和 space 复合索引
|
|
31
|
+
await createIndexIfNotExists(collection, 'user_space', {
|
|
32
|
+
"user": 1,
|
|
33
|
+
"space": 1
|
|
34
|
+
}, {
|
|
35
|
+
background: true
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// 创建 space 和 user_accepted 复合索引
|
|
39
|
+
await createIndexIfNotExists(collection, 'space_user_accepted', {
|
|
40
|
+
"space": 1,
|
|
41
|
+
"user_accepted": 1
|
|
42
|
+
}, {
|
|
43
|
+
background: true
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// 创建 space、user 和 user_accepted 复合索引
|
|
47
|
+
await createIndexIfNotExists(collection, 'space_user_user_accepted', {
|
|
48
|
+
"space": 1,
|
|
49
|
+
"user": 1,
|
|
50
|
+
"user_accepted": 1
|
|
51
|
+
}, {
|
|
52
|
+
background: true
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// 创建 space 和 manager 复合索引
|
|
56
|
+
await createIndexIfNotExists(collection, 'space_manager', {
|
|
57
|
+
"space": 1,
|
|
58
|
+
"manager": 1
|
|
59
|
+
}, {
|
|
60
|
+
background: true
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// 创建 manager 单字段索引(使用 try-catch 处理可能的错误)
|
|
64
|
+
try {
|
|
65
|
+
await createIndexIfNotExists(collection, 'manager', {
|
|
66
|
+
"manager": 1
|
|
67
|
+
}, {
|
|
68
|
+
background: true
|
|
69
|
+
});
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.warn('创建 manager 索引时出错:', error.message);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// 创建 space 和 created 复合索引
|
|
75
|
+
await createIndexIfNotExists(collection, 'space_created', {
|
|
76
|
+
"space": 1,
|
|
77
|
+
"created": 1
|
|
78
|
+
}, {
|
|
79
|
+
background: true
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
// 创建 space、created 和 modified 复合索引
|
|
83
|
+
await createIndexIfNotExists(collection, 'space_created_modified', {
|
|
84
|
+
"space": 1,
|
|
85
|
+
"created": 1,
|
|
86
|
+
"modified": 1
|
|
87
|
+
}, {
|
|
88
|
+
background: true
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
module.exports = {
|
|
93
|
+
run
|
|
94
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// spaces_indexes.js
|
|
2
|
+
const {
|
|
3
|
+
createIndexIfNotExists,
|
|
4
|
+
getCollection
|
|
5
|
+
} = require('./default_db');
|
|
6
|
+
|
|
7
|
+
async function run() {
|
|
8
|
+
const collection = await getCollection('spaces');
|
|
9
|
+
|
|
10
|
+
if (!collection) {
|
|
11
|
+
console.error('无法获取集合 spaces');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 创建 is_paid 单字段索引
|
|
16
|
+
await createIndexIfNotExists(collection, 'is_paid', {
|
|
17
|
+
"is_paid": 1
|
|
18
|
+
}, {
|
|
19
|
+
background: true
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// 创建 name 和 is_paid 复合索引
|
|
23
|
+
await createIndexIfNotExists(collection, 'name_is_paid', {
|
|
24
|
+
"name": 1,
|
|
25
|
+
"is_paid": 1
|
|
26
|
+
}, {
|
|
27
|
+
background: true
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// 创建 _id 和 created 复合索引
|
|
31
|
+
await createIndexIfNotExists(collection, 'id_created', {
|
|
32
|
+
"_id": 1,
|
|
33
|
+
"created": 1
|
|
34
|
+
}, {
|
|
35
|
+
background: true
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
// 创建 _id、created 和 modified 复合索引
|
|
39
|
+
await createIndexIfNotExists(collection, 'id_created_modified', {
|
|
40
|
+
"_id": 1,
|
|
41
|
+
"created": 1,
|
|
42
|
+
"modified": 1
|
|
43
|
+
}, {
|
|
44
|
+
background: true
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
module.exports = {
|
|
49
|
+
run
|
|
50
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// steedos_keyvalues_indexes.js
|
|
2
|
+
const {
|
|
3
|
+
createIndexIfNotExists,
|
|
4
|
+
getCollection
|
|
5
|
+
} = require('./default_db');
|
|
6
|
+
|
|
7
|
+
async function run() {
|
|
8
|
+
const collection = await getCollection('steedos_keyvalues');
|
|
9
|
+
|
|
10
|
+
if (!collection) {
|
|
11
|
+
console.error('无法获取集合 steedos_keyvalues');
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// 创建 space 单字段索引(使用 try-catch 处理可能的错误)
|
|
16
|
+
try {
|
|
17
|
+
await createIndexIfNotExists(collection, 'space', {
|
|
18
|
+
"space": 1
|
|
19
|
+
}, {
|
|
20
|
+
background: true
|
|
21
|
+
});
|
|
22
|
+
} catch (error) {
|
|
23
|
+
console.warn('创建 space 索引时出错:', error.message);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// 创建 user 单字段索引(使用 try-catch 处理可能的错误)
|
|
27
|
+
try {
|
|
28
|
+
await createIndexIfNotExists(collection, 'user', {
|
|
29
|
+
"user": 1
|
|
30
|
+
}, {
|
|
31
|
+
background: true
|
|
32
|
+
});
|
|
33
|
+
} catch (error) {
|
|
34
|
+
console.warn('创建 user 索引时出错:', error.message);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// 创建 key 单字段索引(使用 try-catch 处理可能的错误)
|
|
38
|
+
try {
|
|
39
|
+
await createIndexIfNotExists(collection, 'key', {
|
|
40
|
+
"key": 1
|
|
41
|
+
}, {
|
|
42
|
+
background: true
|
|
43
|
+
});
|
|
44
|
+
} catch (error) {
|
|
45
|
+
console.warn('创建 key 索引时出错:', error.message);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// 创建 user、space 和 key 复合索引
|
|
49
|
+
await createIndexIfNotExists(collection, 'user_space_key', {
|
|
50
|
+
"user": 1,
|
|
51
|
+
"space": 1,
|
|
52
|
+
"key": 1
|
|
53
|
+
}, {
|
|
54
|
+
background: true
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
module.exports = {
|
|
59
|
+
run
|
|
60
|
+
};
|