@feathersjs/mongodb 5.0.25 → 5.0.27
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/CHANGELOG.md +11 -0
- package/lib/adapter.d.ts +4 -4
- package/lib/adapter.js +240 -95
- package/lib/adapter.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js.map +1 -1
- package/package.json +8 -8
- package/src/adapter.ts +281 -111
- package/src/index.ts +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.0.27](https://github.com/feathersjs/feathers/compare/v5.0.26...v5.0.27) (2024-06-18)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @feathersjs/mongodb
|
|
9
|
+
|
|
10
|
+
## [5.0.26](https://github.com/feathersjs/feathers/compare/v5.0.25...v5.0.26) (2024-06-09)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- **mongodb:** Added Update Method Prototype to MongoDBService Class ([#3494](https://github.com/feathersjs/feathers/issues/3494)) ([428f23a](https://github.com/feathersjs/feathers/commit/428f23a8c622cd8bc4d06253206aadd514267846))
|
|
15
|
+
- **mongodb:** MongoDB Aggregation improvements ([#3366](https://github.com/feathersjs/feathers/issues/3366)) ([f2829b1](https://github.com/feathersjs/feathers/commit/f2829b1f8e33d13caae3557d37225d990467fb39))
|
|
16
|
+
|
|
6
17
|
## [5.0.25](https://github.com/feathersjs/feathers/compare/v5.0.24...v5.0.25) (2024-05-03)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @feathersjs/mongodb
|
package/lib/adapter.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ObjectId, Collection, FindOptions, BulkWriteOptions, InsertOneOptions, DeleteOptions, CountDocumentsOptions, ReplaceOptions, Document } from 'mongodb';
|
|
1
|
+
import { ObjectId, Collection, FindOptions, BulkWriteOptions, InsertOneOptions, DeleteOptions, CountDocumentsOptions, ReplaceOptions, FindOneAndReplaceOptions, Document, FindOneAndDeleteOptions } from 'mongodb';
|
|
2
2
|
import { AdapterBase, AdapterParams, AdapterServiceOptions, PaginationOptions, AdapterQuery } from '@feathersjs/adapter-commons';
|
|
3
3
|
import { Id, Paginated } from '@feathersjs/feathers';
|
|
4
4
|
export interface MongoDBAdapterOptions extends AdapterServiceOptions {
|
|
@@ -8,7 +8,7 @@ export interface MongoDBAdapterOptions extends AdapterServiceOptions {
|
|
|
8
8
|
}
|
|
9
9
|
export interface MongoDBAdapterParams<Q = AdapterQuery> extends AdapterParams<Q, Partial<MongoDBAdapterOptions>> {
|
|
10
10
|
pipeline?: Document[];
|
|
11
|
-
mongodb?: BulkWriteOptions | FindOptions | InsertOneOptions | DeleteOptions | CountDocumentsOptions | ReplaceOptions;
|
|
11
|
+
mongodb?: BulkWriteOptions | FindOptions | InsertOneOptions | DeleteOptions | CountDocumentsOptions | ReplaceOptions | FindOneAndReplaceOptions | FindOneAndDeleteOptions;
|
|
12
12
|
}
|
|
13
13
|
export type AdapterId = Id | ObjectId;
|
|
14
14
|
export type NullableAdapterId = AdapterId | null;
|
|
@@ -32,13 +32,13 @@ export declare class MongoDbAdapter<Result, Data = Partial<Result>, ServiceParam
|
|
|
32
32
|
findRaw(params: ServiceParams): Promise<import("mongodb").FindCursor<import("mongodb").WithId<Document>>>;
|
|
33
33
|
aggregateRaw(params: ServiceParams): Promise<import("mongodb").AggregationCursor<Document>>;
|
|
34
34
|
makeFeathersPipeline(params: ServiceParams): Document[];
|
|
35
|
-
|
|
35
|
+
getProjection(select?: string[] | {
|
|
36
36
|
[key: string]: number;
|
|
37
37
|
}): {
|
|
38
38
|
[key: string]: number;
|
|
39
39
|
};
|
|
40
|
-
_findOrGet(id: NullableAdapterId, params: ServiceParams): Promise<Result | Paginated<Result> | Result[]>;
|
|
41
40
|
normalizeId<D>(id: NullableAdapterId, data: D): D;
|
|
41
|
+
countDocuments(params: ServiceParams): Promise<number>;
|
|
42
42
|
_get(id: AdapterId, params?: ServiceParams): Promise<Result>;
|
|
43
43
|
_find(params?: ServiceParams & {
|
|
44
44
|
paginate?: PaginationOptions;
|
package/lib/adapter.js
CHANGED
|
@@ -50,13 +50,13 @@ class MongoDbAdapter extends adapter_commons_1.AdapterBase {
|
|
|
50
50
|
async findRaw(params) {
|
|
51
51
|
const { filters, query } = this.filterQuery(null, params);
|
|
52
52
|
const model = await this.getModel(params);
|
|
53
|
-
const q = model.find(query,
|
|
54
|
-
if (filters.$select !== undefined) {
|
|
55
|
-
q.project(this.getSelect(filters.$select));
|
|
56
|
-
}
|
|
53
|
+
const q = model.find(query, params.mongodb);
|
|
57
54
|
if (filters.$sort !== undefined) {
|
|
58
55
|
q.sort(filters.$sort);
|
|
59
56
|
}
|
|
57
|
+
if (filters.$select !== undefined) {
|
|
58
|
+
q.project(this.getProjection(filters.$select));
|
|
59
|
+
}
|
|
60
60
|
if (filters.$skip !== undefined) {
|
|
61
61
|
q.skip(filters.$skip);
|
|
62
62
|
}
|
|
@@ -65,6 +65,7 @@ class MongoDbAdapter extends adapter_commons_1.AdapterBase {
|
|
|
65
65
|
}
|
|
66
66
|
return q;
|
|
67
67
|
}
|
|
68
|
+
/* TODO: Remove $out and $merge stages, else it returns an empty cursor. I think its safe to assume this is primarily for querying. */
|
|
68
69
|
async aggregateRaw(params) {
|
|
69
70
|
const model = await this.getModel(params);
|
|
70
71
|
const pipeline = params.pipeline || [];
|
|
@@ -72,17 +73,17 @@ class MongoDbAdapter extends adapter_commons_1.AdapterBase {
|
|
|
72
73
|
const before = index >= 0 ? pipeline.slice(0, index) : [];
|
|
73
74
|
const feathersPipeline = this.makeFeathersPipeline(params);
|
|
74
75
|
const after = index >= 0 ? pipeline.slice(index + 1) : pipeline;
|
|
75
|
-
return model.aggregate([...before, ...feathersPipeline, ...after]);
|
|
76
|
+
return model.aggregate([...before, ...feathersPipeline, ...after], params.mongodb);
|
|
76
77
|
}
|
|
77
78
|
makeFeathersPipeline(params) {
|
|
78
79
|
const { filters, query } = this.filterQuery(null, params);
|
|
79
80
|
const pipeline = [{ $match: query }];
|
|
80
|
-
if (filters.$select !== undefined) {
|
|
81
|
-
pipeline.push({ $project: this.getSelect(filters.$select) });
|
|
82
|
-
}
|
|
83
81
|
if (filters.$sort !== undefined) {
|
|
84
82
|
pipeline.push({ $sort: filters.$sort });
|
|
85
83
|
}
|
|
84
|
+
if (filters.$select !== undefined) {
|
|
85
|
+
pipeline.push({ $project: this.getProjection(filters.$select) });
|
|
86
|
+
}
|
|
86
87
|
if (filters.$skip !== undefined) {
|
|
87
88
|
pipeline.push({ $skip: filters.$skip });
|
|
88
89
|
}
|
|
@@ -91,7 +92,10 @@ class MongoDbAdapter extends adapter_commons_1.AdapterBase {
|
|
|
91
92
|
}
|
|
92
93
|
return pipeline;
|
|
93
94
|
}
|
|
94
|
-
|
|
95
|
+
getProjection(select) {
|
|
96
|
+
if (!select) {
|
|
97
|
+
return undefined;
|
|
98
|
+
}
|
|
95
99
|
if (Array.isArray(select)) {
|
|
96
100
|
if (!select.includes(this.id)) {
|
|
97
101
|
select = [this.id, ...select];
|
|
@@ -109,9 +113,6 @@ class MongoDbAdapter extends adapter_commons_1.AdapterBase {
|
|
|
109
113
|
}
|
|
110
114
|
return select;
|
|
111
115
|
}
|
|
112
|
-
async _findOrGet(id, params) {
|
|
113
|
-
return id === null ? await this._find(params) : await this._get(id, params);
|
|
114
|
-
}
|
|
115
116
|
normalizeId(id, data) {
|
|
116
117
|
if (this.id === '_id') {
|
|
117
118
|
// Default Mongo IDs cannot be updated. The Mongo library handles
|
|
@@ -128,64 +129,105 @@ class MongoDbAdapter extends adapter_commons_1.AdapterBase {
|
|
|
128
129
|
}
|
|
129
130
|
return data;
|
|
130
131
|
}
|
|
132
|
+
async countDocuments(params) {
|
|
133
|
+
const { useEstimatedDocumentCount } = this.getOptions(params);
|
|
134
|
+
const { query } = this.filterQuery(null, params);
|
|
135
|
+
if (params.pipeline) {
|
|
136
|
+
const aggregateParams = {
|
|
137
|
+
...params,
|
|
138
|
+
query: {
|
|
139
|
+
...params.query,
|
|
140
|
+
$select: [this.id],
|
|
141
|
+
$sort: undefined,
|
|
142
|
+
$skip: undefined,
|
|
143
|
+
$limit: undefined
|
|
144
|
+
}
|
|
145
|
+
};
|
|
146
|
+
const result = await this.aggregateRaw(aggregateParams).then((result) => result.toArray());
|
|
147
|
+
return result.length;
|
|
148
|
+
}
|
|
149
|
+
const model = await this.getModel(params);
|
|
150
|
+
if (useEstimatedDocumentCount && typeof model.estimatedDocumentCount === 'function') {
|
|
151
|
+
return model.estimatedDocumentCount();
|
|
152
|
+
}
|
|
153
|
+
return model.countDocuments(query, params.mongodb);
|
|
154
|
+
}
|
|
131
155
|
async _get(id, params = {}) {
|
|
132
156
|
const { query, filters: { $select } } = this.filterQuery(id, params);
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
157
|
+
if (params.pipeline) {
|
|
158
|
+
const aggregateParams = {
|
|
159
|
+
...params,
|
|
160
|
+
query: {
|
|
161
|
+
...params.query,
|
|
162
|
+
$limit: 1,
|
|
163
|
+
$and: (params.query.$and || []).concat({
|
|
164
|
+
[this.id]: this.getObjectId(id)
|
|
165
|
+
})
|
|
138
166
|
}
|
|
139
|
-
}
|
|
140
|
-
|
|
167
|
+
};
|
|
168
|
+
return this.aggregateRaw(aggregateParams)
|
|
169
|
+
.then((result) => result.toArray())
|
|
170
|
+
.then(([result]) => {
|
|
171
|
+
if (!result) {
|
|
172
|
+
throw new errors_1.NotFound(`No record found for id '${id}'`);
|
|
173
|
+
}
|
|
174
|
+
return result;
|
|
175
|
+
})
|
|
176
|
+
.catch(error_handler_1.errorHandler);
|
|
177
|
+
}
|
|
141
178
|
const findOptions = {
|
|
142
|
-
|
|
143
|
-
...
|
|
179
|
+
projection: this.getProjection($select),
|
|
180
|
+
...params.mongodb
|
|
144
181
|
};
|
|
145
182
|
return this.getModel(params)
|
|
146
183
|
.then((model) => model.findOne(query, findOptions))
|
|
147
|
-
.then((
|
|
148
|
-
if (
|
|
184
|
+
.then((result) => {
|
|
185
|
+
if (!result) {
|
|
149
186
|
throw new errors_1.NotFound(`No record found for id '${id}'`);
|
|
150
187
|
}
|
|
151
|
-
return
|
|
188
|
+
return result;
|
|
152
189
|
})
|
|
153
190
|
.catch(error_handler_1.errorHandler);
|
|
154
191
|
}
|
|
155
192
|
async _find(params = {}) {
|
|
156
|
-
const { paginate
|
|
157
|
-
const { filters
|
|
158
|
-
const
|
|
159
|
-
const
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
if (useEstimatedDocumentCount && typeof model.estimatedDocumentCount === 'function') {
|
|
163
|
-
return model.estimatedDocumentCount();
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
return model.countDocuments(query, { ...params.mongodb });
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return Promise.resolve(0);
|
|
193
|
+
const { paginate } = this.getOptions(params);
|
|
194
|
+
const { filters } = this.filterQuery(null, params);
|
|
195
|
+
const paginationDisabled = params.paginate === false || !paginate || !paginate.default;
|
|
196
|
+
const getData = () => {
|
|
197
|
+
const result = params.pipeline ? this.aggregateRaw(params) : this.findRaw(params);
|
|
198
|
+
return result.then((result) => result.toArray());
|
|
170
199
|
};
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
200
|
+
if (paginationDisabled) {
|
|
201
|
+
if (filters.$limit === 0) {
|
|
202
|
+
return [];
|
|
203
|
+
}
|
|
204
|
+
const data = await getData();
|
|
205
|
+
return data;
|
|
206
|
+
}
|
|
207
|
+
if (filters.$limit === 0) {
|
|
208
|
+
return {
|
|
209
|
+
total: await this.countDocuments(params),
|
|
210
|
+
data: [],
|
|
211
|
+
limit: filters.$limit,
|
|
212
|
+
skip: filters.$skip || 0
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
const [data, total] = await Promise.all([getData(), this.countDocuments(params)]);
|
|
216
|
+
return {
|
|
176
217
|
total,
|
|
218
|
+
data: data,
|
|
177
219
|
limit: filters.$limit,
|
|
178
|
-
skip: filters.$skip || 0
|
|
179
|
-
data: filters.$limit === 0 ? [] : (await request.toArray())
|
|
220
|
+
skip: filters.$skip || 0
|
|
180
221
|
};
|
|
181
|
-
return paginate && paginate.default ? page : page.data;
|
|
182
222
|
}
|
|
183
223
|
async _create(data, params = {}) {
|
|
184
|
-
|
|
224
|
+
var _a, _b;
|
|
225
|
+
if (Array.isArray(data) && !this.allowsMulti('create', params)) {
|
|
226
|
+
throw new errors_1.MethodNotAllowed('Can not create multiple entries');
|
|
227
|
+
}
|
|
185
228
|
const model = await this.getModel(params);
|
|
186
229
|
const setId = (item) => {
|
|
187
230
|
const entry = Object.assign({}, item);
|
|
188
|
-
// Generate a MongoId if we use a custom id
|
|
189
231
|
if (this.id !== '_id' && typeof entry[this.id] === 'undefined') {
|
|
190
232
|
return {
|
|
191
233
|
[this.id]: new mongodb_1.ObjectId().toHexString(),
|
|
@@ -194,14 +236,28 @@ class MongoDbAdapter extends adapter_commons_1.AdapterBase {
|
|
|
194
236
|
}
|
|
195
237
|
return entry;
|
|
196
238
|
};
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
239
|
+
if (Array.isArray(data)) {
|
|
240
|
+
const created = await model.insertMany(data.map(setId), params.mongodb).catch(error_handler_1.errorHandler);
|
|
241
|
+
return this._find({
|
|
242
|
+
...params,
|
|
243
|
+
paginate: false,
|
|
244
|
+
query: {
|
|
245
|
+
_id: { $in: Object.values(created.insertedIds) },
|
|
246
|
+
$select: (_a = params.query) === null || _a === void 0 ? void 0 : _a.$select
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
const created = await model.insertOne(setId(data), params.mongodb).catch(error_handler_1.errorHandler);
|
|
251
|
+
const result = await this._find({
|
|
252
|
+
...params,
|
|
253
|
+
paginate: false,
|
|
254
|
+
query: {
|
|
255
|
+
_id: created.insertedId,
|
|
256
|
+
$select: (_b = params.query) === null || _b === void 0 ? void 0 : _b.$select,
|
|
257
|
+
$limit: 1
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
return result[0];
|
|
205
261
|
}
|
|
206
262
|
async _patch(id, _data, params = {}) {
|
|
207
263
|
if (id === null && !this.allowsMulti('patch', params)) {
|
|
@@ -209,71 +265,160 @@ class MongoDbAdapter extends adapter_commons_1.AdapterBase {
|
|
|
209
265
|
}
|
|
210
266
|
const data = this.normalizeId(id, _data);
|
|
211
267
|
const model = await this.getModel(params);
|
|
212
|
-
const { query, filters: { $select } } = this.filterQuery(id, params);
|
|
213
|
-
const
|
|
214
|
-
const modifier = Object.keys(data).reduce((current, key) => {
|
|
268
|
+
const { query, filters: { $sort, $select } } = this.filterQuery(id, params);
|
|
269
|
+
const replacement = Object.keys(data).reduce((current, key) => {
|
|
215
270
|
const value = data[key];
|
|
216
271
|
if (key.charAt(0) !== '$') {
|
|
272
|
+
current.$set[key] = value;
|
|
273
|
+
}
|
|
274
|
+
else if (key === '$set') {
|
|
217
275
|
current.$set = {
|
|
218
276
|
...current.$set,
|
|
219
|
-
|
|
277
|
+
...value
|
|
220
278
|
};
|
|
221
279
|
}
|
|
222
280
|
else {
|
|
223
281
|
current[key] = value;
|
|
224
282
|
}
|
|
225
283
|
return current;
|
|
226
|
-
}, {});
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
284
|
+
}, { $set: {} });
|
|
285
|
+
if (id === null) {
|
|
286
|
+
const findParams = {
|
|
287
|
+
...params,
|
|
288
|
+
paginate: false,
|
|
289
|
+
query: {
|
|
290
|
+
...params.query,
|
|
291
|
+
$select: [this.id]
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
return this._find(findParams)
|
|
295
|
+
.then(async (result) => {
|
|
296
|
+
const idList = result.map((item) => item[this.id]);
|
|
297
|
+
await model.updateMany({ [this.id]: { $in: idList } }, replacement, params.mongodb);
|
|
298
|
+
return this._find({
|
|
299
|
+
...params,
|
|
300
|
+
paginate: false,
|
|
301
|
+
query: {
|
|
302
|
+
[this.id]: { $in: idList },
|
|
303
|
+
$sort,
|
|
304
|
+
$select
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
})
|
|
308
|
+
.catch(error_handler_1.errorHandler);
|
|
309
|
+
}
|
|
310
|
+
if (params.pipeline) {
|
|
311
|
+
const getParams = {
|
|
312
|
+
...params,
|
|
313
|
+
query: {
|
|
314
|
+
...params.query,
|
|
315
|
+
$select: [this.id]
|
|
316
|
+
}
|
|
317
|
+
};
|
|
318
|
+
return this._get(id, getParams)
|
|
319
|
+
.then(async () => {
|
|
320
|
+
await model.updateOne({ [this.id]: id }, replacement, params.mongodb);
|
|
321
|
+
return this._get(id, {
|
|
322
|
+
...params,
|
|
323
|
+
query: { $select }
|
|
324
|
+
});
|
|
325
|
+
})
|
|
326
|
+
.catch(error_handler_1.errorHandler);
|
|
327
|
+
}
|
|
328
|
+
const updateOptions = {
|
|
329
|
+
projection: this.getProjection($select),
|
|
330
|
+
...params.mongodb,
|
|
331
|
+
returnDocument: 'after'
|
|
244
332
|
};
|
|
245
|
-
|
|
246
|
-
|
|
333
|
+
return model
|
|
334
|
+
.findOneAndUpdate(query, replacement, updateOptions)
|
|
335
|
+
.then((result) => {
|
|
336
|
+
if (!result) {
|
|
337
|
+
throw new errors_1.NotFound(`No record found for id '${id}'`);
|
|
338
|
+
}
|
|
339
|
+
return result;
|
|
340
|
+
})
|
|
341
|
+
.catch(error_handler_1.errorHandler);
|
|
247
342
|
}
|
|
248
343
|
async _update(id, data, params = {}) {
|
|
249
344
|
if (id === null || Array.isArray(data)) {
|
|
250
345
|
throw new errors_1.BadRequest("You can not replace multiple instances. Did you mean 'patch'?");
|
|
251
346
|
}
|
|
347
|
+
const { query, filters: { $select } } = this.filterQuery(id, params);
|
|
252
348
|
const model = await this.getModel(params);
|
|
253
|
-
const
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
349
|
+
const replacement = this.normalizeId(id, data);
|
|
350
|
+
if (params.pipeline) {
|
|
351
|
+
const getParams = {
|
|
352
|
+
...params,
|
|
353
|
+
query: {
|
|
354
|
+
...params.query,
|
|
355
|
+
$select: [this.id]
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
return this._get(id, getParams)
|
|
359
|
+
.then(async () => {
|
|
360
|
+
await model.replaceOne({ [this.id]: id }, replacement, params.mongodb);
|
|
361
|
+
return this._get(id, {
|
|
362
|
+
...params,
|
|
363
|
+
query: { $select }
|
|
364
|
+
});
|
|
365
|
+
})
|
|
366
|
+
.catch(error_handler_1.errorHandler);
|
|
367
|
+
}
|
|
368
|
+
const replaceOptions = {
|
|
369
|
+
projection: this.getProjection($select),
|
|
370
|
+
...params.mongodb,
|
|
371
|
+
returnDocument: 'after'
|
|
372
|
+
};
|
|
373
|
+
return model
|
|
374
|
+
.findOneAndReplace(query, replacement, replaceOptions)
|
|
375
|
+
.then((result) => {
|
|
376
|
+
if (!result) {
|
|
377
|
+
throw new errors_1.NotFound(`No record found for id '${id}'`);
|
|
378
|
+
}
|
|
379
|
+
return result;
|
|
380
|
+
})
|
|
381
|
+
.catch(error_handler_1.errorHandler);
|
|
257
382
|
}
|
|
258
383
|
async _remove(id, params = {}) {
|
|
384
|
+
var _a;
|
|
259
385
|
if (id === null && !this.allowsMulti('remove', params)) {
|
|
260
386
|
throw new errors_1.MethodNotAllowed('Can not remove multiple entries');
|
|
261
387
|
}
|
|
262
388
|
const model = await this.getModel(params);
|
|
263
|
-
const { query
|
|
264
|
-
const deleteOptions = { ...params.mongodb };
|
|
389
|
+
const { query } = this.filterQuery(id, params);
|
|
265
390
|
const findParams = {
|
|
266
391
|
...params,
|
|
267
|
-
paginate: false
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
392
|
+
paginate: false
|
|
393
|
+
};
|
|
394
|
+
if (id === null) {
|
|
395
|
+
return this._find(findParams)
|
|
396
|
+
.then(async (result) => {
|
|
397
|
+
const idList = result.map((item) => item[this.id]);
|
|
398
|
+
await model.deleteMany({ [this.id]: { $in: idList } }, params.mongodb);
|
|
399
|
+
return result;
|
|
400
|
+
})
|
|
401
|
+
.catch(error_handler_1.errorHandler);
|
|
402
|
+
}
|
|
403
|
+
if (params.pipeline) {
|
|
404
|
+
return this._get(id, params)
|
|
405
|
+
.then(async (result) => {
|
|
406
|
+
await model.deleteOne({ [this.id]: id }, params.mongodb);
|
|
407
|
+
return result;
|
|
408
|
+
})
|
|
409
|
+
.catch(error_handler_1.errorHandler);
|
|
410
|
+
}
|
|
411
|
+
const deleteOptions = {
|
|
412
|
+
...params.mongodb,
|
|
413
|
+
projection: this.getProjection((_a = params.query) === null || _a === void 0 ? void 0 : _a.$select)
|
|
272
414
|
};
|
|
273
|
-
return
|
|
274
|
-
.
|
|
275
|
-
|
|
276
|
-
|
|
415
|
+
return model
|
|
416
|
+
.findOneAndDelete(query, deleteOptions)
|
|
417
|
+
.then((result) => {
|
|
418
|
+
if (!result) {
|
|
419
|
+
throw new errors_1.NotFound(`No record found for id '${id}'`);
|
|
420
|
+
}
|
|
421
|
+
return result;
|
|
277
422
|
})
|
|
278
423
|
.catch(error_handler_1.errorHandler);
|
|
279
424
|
}
|
package/lib/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":";;;AAAA,qCAUgB;AAChB,+CAA2E;AAC3E,iDAAuC;AACvC,iEAQoC;AAEpC,mDAA8C;AAwB9C,sBAAsB;AACtB,MAAa,cAKX,SAAQ,6BAAqF;IAC7F,YAAY,OAA8B;QACxC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;QACxD,CAAC;QAED,KAAK,CAAC;YACJ,EAAE,EAAE,KAAK;YACT,GAAG,OAAO;SACX,CAAC,CAAA;IACJ,CAAC;IAED,WAAW,CAAC,EAAa;QACvB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAClC,OAAO,EAAE,CAAA;QACX,CAAC;QAED,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,kBAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9C,EAAE,GAAG,IAAI,kBAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,EAAE,CAAA;IACX,CAAC;IAED,WAAW,CAAC,EAAqB,EAAE,MAAqB;QACtD,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACvC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAiB,CAAA;QACpG,MAAM,MAAM,GAAG,IAAA,0BAAQ,EAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;QACjD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;gBACrC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;aAChC,CAAC,CAAA;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACnD,CAAC;QAED,OAAO;YACL,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;YAC1C,KAAK;SACN,CAAA;IACH,CAAC;IAED,QAAQ,CAAC,SAAwB,EAAmB;QAClD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACzC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAqB;QACjC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;QAElD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACzB,CAAC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAqB;QACtC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAA;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACtE,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QAE/D,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,gBAAgB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,oBAAoB,CAAC,MAAqB;QACxC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAe,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAEhD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAC9D,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QACzC,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAA;QACzC,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,SAAS,CAAC,MAA4C;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,MAAM,CAAC,CAAA;YAC/B,CAAC;YACD,OAAO,MAAM,CAAC,MAAM,CAClB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChB,GAAG,KAAK;gBACR,CAAC,IAAI,CAAC,EAAE,CAAC;aACV,CAAC,EACF,EAAE,CACH,CAAA;QACH,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACrB,OAAO;gBACL,GAAG,MAAM;gBACT,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;aACb,CAAA;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAqB,EAAE,MAAqB;QAC3D,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;IAC7E,CAAC;IAED,WAAW,CAAI,EAAqB,EAAE,IAAO;QAC3C,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACtB,iEAAiE;YACjE,sBAAsB;YACtB,OAAO,WAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;QAC9B,CAAC;aAAM,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YACvB,6DAA6D;YAC7D,oDAAoD;YACpD,OAAO;gBACL,GAAG,IAAI;gBACP,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;aACd,CAAA;QACH,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAa,EAAE,SAAwB,EAAmB;QACnE,MAAM,EACJ,KAAK,EACL,OAAO,EAAE,EAAE,OAAO,EAAE,EACrB,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAChC,MAAM,UAAU,GAAG,OAAO;YACxB,CAAC,CAAC;gBACE,UAAU,EAAE;oBACV,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;oBAC1B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;iBACb;aACF;YACH,CAAC,CAAC,EAAE,CAAA;QACN,MAAM,WAAW,GAAgB;YAC/B,GAAG,MAAM,CAAC,OAAO;YACjB,GAAG,UAAU;SACd,CAAA;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;aACzB,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;aAClD,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;gBACjB,MAAM,IAAI,iBAAQ,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAA;YACtD,CAAC;YAED,OAAO,IAAI,CAAA;QACb,CAAC,CAAC;aACD,KAAK,CAAC,4BAAY,CAAC,CAAA;IACxB,CAAC;IAKD,KAAK,CAAC,KAAK,CAAC,SAAwB,EAAmB;QACrD,MAAM,EAAE,QAAQ,EAAE,yBAAyB,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACvE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACzD,MAAM,cAAc,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,CAAA;QAC9D,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;YAChC,IAAI,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;gBACzC,IAAI,yBAAyB,IAAI,OAAO,KAAK,CAAC,sBAAsB,KAAK,UAAU,EAAE,CAAC;oBACpF,OAAO,KAAK,CAAC,sBAAsB,EAAE,CAAA;gBACvC,CAAC;qBAAM,CAAC;oBACN,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;gBAC3D,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC3B,CAAC,CAAA;QAED,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACzC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACjE,cAAc,EAAE;SACjB,CAAC,CAAA;QAEF,MAAM,IAAI,GAAG;YACX,KAAK;YACL,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,IAAI,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;YACxB,IAAI,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAqB;SACjF,CAAA;QAED,OAAO,QAAQ,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAA;IACxD,CAAC;IAKD,KAAK,CAAC,OAAO,CACX,IAAmB,EACnB,SAAwB,EAAmB;QAE3C,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAA;QACnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,CAAC,IAAS,EAAE,EAAE;YAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;YAErC,2CAA2C;YAC3C,IAAI,IAAI,CAAC,EAAE,KAAK,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,WAAW,EAAE,CAAC;gBAC/D,OAAO;oBACL,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,kBAAQ,EAAE,CAAC,WAAW,EAAE;oBACvC,GAAG,KAAK;iBACT,CAAA;YACH,CAAC;YAED,OAAO,KAAK,CAAA;QACd,CAAC,CAAA;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YACjC,CAAC,CAAC,KAAK;iBACF,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;iBACzC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CACrB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAC1F;YACL,CAAC,CAAC,KAAK;iBACF,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;iBACpC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QAExF,OAAO,OAAO,CAAC,IAAI,CAAC,IAAA,wBAAM,EAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,4BAAY,CAAC,CAAA;IAClE,CAAC;IASD,KAAK,CAAC,MAAM,CACV,EAAqB,EACrB,KAAkC,EAClC,SAAwB,EAAmB;QAE3C,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,yBAAgB,CAAC,gCAAgC,CAAC,CAAA;QAC9D,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,CAAA;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,EACJ,KAAK,EACL,OAAO,EAAE,EAAE,OAAO,EAAE,EACrB,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAChC,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE;YACzD,MAAM,KAAK,GAAI,IAAY,CAAC,GAAG,CAAC,CAAA;YAEhC,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,GAAG;oBACb,GAAG,OAAO,CAAC,IAAI;oBACf,CAAC,GAAG,CAAC,EAAE,KAAK;iBACb,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;YACtB,CAAC;YAED,OAAO,OAAO,CAAA;QAChB,CAAC,EAAE,EAAS,CAAC,CAAA;QACb,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;YAC5C,GAAG,MAAM;YACT,KAAK,EAAE;gBACL,GAAG,KAAK;gBACR,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;aACnB;YACD,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QACtE,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACtD,MAAM,UAAU,GAAG;YACjB,GAAG,MAAM;YACT,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE;gBACL,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;gBAC1B,OAAO;aACR;SACF,CAAA;QAED,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAA;QAEtD,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC,KAAK,CAAC,4BAAY,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAa,EAAE,IAAU,EAAE,SAAwB,EAAmB;QAClF,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,mBAAU,CAAC,+DAA+D,CAAC,CAAA;QACvF,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAC9C,MAAM,cAAc,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAE5C,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,cAAc,CAAC,CAAA;QAEzE,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,4BAAY,CAAC,CAAA;IACxD,CAAC;IAKD,KAAK,CAAC,OAAO,CACX,EAAgC,EAChC,SAAwB,EAAmB;QAE3C,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YACvD,MAAM,IAAI,yBAAgB,CAAC,iCAAiC,CAAC,CAAA;QAC/D,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzC,MAAM,EACJ,KAAK,EACL,OAAO,EAAE,EAAE,OAAO,EAAE,EACrB,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAChC,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAA;QAC3C,MAAM,UAAU,GAAG;YACjB,GAAG,MAAM;YACT,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE;gBACL,GAAG,KAAK;gBACR,OAAO;aACR;SACF,CAAA;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,CAAC;aACnC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACpB,MAAM,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,CAAC,CAAA;YAC5C,OAAO,KAAK,CAAA;QACd,CAAC,CAAC;aACD,KAAK,CAAC,4BAAY,CAAC,CAAA;IACxB,CAAC;CACF;AA3WD,wCA2WC"}
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export declare class MongoDBService<Result = any, Data = Partial<Result>, Servic
|
|
|
16
16
|
create(data: Data, params?: ServiceParams): Promise<Result>;
|
|
17
17
|
create(data: Data[], params?: ServiceParams): Promise<Result[]>;
|
|
18
18
|
create(data: Data | Data[], params?: ServiceParams): Promise<Result | Result[]>;
|
|
19
|
-
update(id:
|
|
19
|
+
update(id: NullableAdapterId, data: Data, params?: ServiceParams): Promise<Result>;
|
|
20
20
|
patch(id: null, data: PatchData, params?: ServiceParams): Promise<Result[]>;
|
|
21
21
|
patch(id: AdapterId, data: PatchData, params?: ServiceParams): Promise<Result>;
|
|
22
22
|
patch(id: NullableAdapterId, data: PatchData, params?: ServiceParams): Promise<Result | Result[]>;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,gDAAyD;AAEzD,uCAA8F;AAE9F,4CAAyB;AACzB,kDAA+B;AAC/B,+CAA4B;AAE5B,MAAa,cAKX,SAAQ,wBAAsD;IAI9D,KAAK,CAAC,IAAI,CAAC,MAAsB;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,GAAG,MAAM;YACT,KAAK,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAa,EAAE,MAAsB;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACnB,GAAG,MAAM;YACT,KAAK,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,IAAmB,EAAE,MAAsB;QACtD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,sBAAgB,CAAC,iCAAiC,CAAC,CAAA;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,gDAAyD;AAEzD,uCAA8F;AAE9F,4CAAyB;AACzB,kDAA+B;AAC/B,+CAA4B;AAE5B,MAAa,cAKX,SAAQ,wBAAsD;IAI9D,KAAK,CAAC,IAAI,CAAC,MAAsB;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC;YAChB,GAAG,MAAM;YACT,KAAK,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAa,EAAE,MAAsB;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;YACnB,GAAG,MAAM;YACT,KAAK,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,IAAmB,EAAE,MAAsB;QACtD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/D,MAAM,IAAI,sBAAgB,CAAC,iCAAiC,CAAC,CAAA;QAC/D,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACnC,CAAC;IAGD,KAAK,CAAC,MAAM,CAAC,EAAa,EAAE,IAAU,EAAE,MAAsB;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE;YAC5B,GAAG,MAAM;YACT,KAAK,EAAE,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;SACxC,CAAC,CAAA;IACJ,CAAC;IAKD,KAAK,CAAC,KAAK,CAAC,EAAqB,EAAE,IAAe,EAAE,MAAsB;QACxE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAE7D,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE;YAC3B,GAAG,MAAM;YACT,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;IAKD,KAAK,CAAC,MAAM,CAAC,EAAqB,EAAE,MAAsB;QACxD,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAE7D,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;YACtB,GAAG,MAAM;YACT,KAAK;SACN,CAAC,CAAA;IACJ,CAAC;CACF;AAjED,wCAiEC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@feathersjs/mongodb",
|
|
3
3
|
"description": "Feathers MongoDB service adapter",
|
|
4
|
-
"version": "5.0.
|
|
4
|
+
"version": "5.0.27",
|
|
5
5
|
"homepage": "https://feathersjs.com",
|
|
6
6
|
"main": "lib/",
|
|
7
7
|
"keywords": [
|
|
@@ -51,17 +51,17 @@
|
|
|
51
51
|
"access": "public"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
|
-
"@feathersjs/adapter-commons": "^5.0.
|
|
55
|
-
"@feathersjs/commons": "^5.0.
|
|
56
|
-
"@feathersjs/errors": "^5.0.
|
|
57
|
-
"@feathersjs/feathers": "^5.0.
|
|
54
|
+
"@feathersjs/adapter-commons": "^5.0.27",
|
|
55
|
+
"@feathersjs/commons": "^5.0.27",
|
|
56
|
+
"@feathersjs/errors": "^5.0.27",
|
|
57
|
+
"@feathersjs/feathers": "^5.0.27"
|
|
58
58
|
},
|
|
59
59
|
"peerDependencies": {
|
|
60
60
|
"mongodb": "^6.5.0"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
|
-
"@feathersjs/adapter-tests": "^5.0.
|
|
64
|
-
"@feathersjs/schema": "^5.0.
|
|
63
|
+
"@feathersjs/adapter-tests": "^5.0.27",
|
|
64
|
+
"@feathersjs/schema": "^5.0.27",
|
|
65
65
|
"@types/mocha": "^10.0.6",
|
|
66
66
|
"@types/node": "^20.12.8",
|
|
67
67
|
"mocha": "^10.4.0",
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"shx": "^0.3.4",
|
|
70
70
|
"typescript": "^5.4.5"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "f6ff82535fa25432757c049f54302883c59e6bb6"
|
|
73
73
|
}
|
package/src/adapter.ts
CHANGED
|
@@ -7,13 +7,15 @@ import {
|
|
|
7
7
|
DeleteOptions,
|
|
8
8
|
CountDocumentsOptions,
|
|
9
9
|
ReplaceOptions,
|
|
10
|
-
|
|
10
|
+
FindOneAndReplaceOptions,
|
|
11
|
+
FindOneAndUpdateOptions,
|
|
12
|
+
Document,
|
|
13
|
+
FindOneAndDeleteOptions
|
|
11
14
|
} from 'mongodb'
|
|
12
15
|
import { BadRequest, MethodNotAllowed, NotFound } from '@feathersjs/errors'
|
|
13
16
|
import { _ } from '@feathersjs/commons'
|
|
14
17
|
import {
|
|
15
18
|
AdapterBase,
|
|
16
|
-
select,
|
|
17
19
|
AdapterParams,
|
|
18
20
|
AdapterServiceOptions,
|
|
19
21
|
PaginationOptions,
|
|
@@ -39,6 +41,8 @@ export interface MongoDBAdapterParams<Q = AdapterQuery>
|
|
|
39
41
|
| DeleteOptions
|
|
40
42
|
| CountDocumentsOptions
|
|
41
43
|
| ReplaceOptions
|
|
44
|
+
| FindOneAndReplaceOptions
|
|
45
|
+
| FindOneAndDeleteOptions
|
|
42
46
|
}
|
|
43
47
|
|
|
44
48
|
export type AdapterId = Id | ObjectId
|
|
@@ -103,16 +107,16 @@ export class MongoDbAdapter<
|
|
|
103
107
|
async findRaw(params: ServiceParams) {
|
|
104
108
|
const { filters, query } = this.filterQuery(null, params)
|
|
105
109
|
const model = await this.getModel(params)
|
|
106
|
-
const q = model.find(query,
|
|
107
|
-
|
|
108
|
-
if (filters.$select !== undefined) {
|
|
109
|
-
q.project(this.getSelect(filters.$select))
|
|
110
|
-
}
|
|
110
|
+
const q = model.find(query, params.mongodb)
|
|
111
111
|
|
|
112
112
|
if (filters.$sort !== undefined) {
|
|
113
113
|
q.sort(filters.$sort)
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
+
if (filters.$select !== undefined) {
|
|
117
|
+
q.project(this.getProjection(filters.$select))
|
|
118
|
+
}
|
|
119
|
+
|
|
116
120
|
if (filters.$skip !== undefined) {
|
|
117
121
|
q.skip(filters.$skip)
|
|
118
122
|
}
|
|
@@ -124,6 +128,7 @@ export class MongoDbAdapter<
|
|
|
124
128
|
return q
|
|
125
129
|
}
|
|
126
130
|
|
|
131
|
+
/* TODO: Remove $out and $merge stages, else it returns an empty cursor. I think its safe to assume this is primarily for querying. */
|
|
127
132
|
async aggregateRaw(params: ServiceParams) {
|
|
128
133
|
const model = await this.getModel(params)
|
|
129
134
|
const pipeline = params.pipeline || []
|
|
@@ -132,21 +137,21 @@ export class MongoDbAdapter<
|
|
|
132
137
|
const feathersPipeline = this.makeFeathersPipeline(params)
|
|
133
138
|
const after = index >= 0 ? pipeline.slice(index + 1) : pipeline
|
|
134
139
|
|
|
135
|
-
return model.aggregate([...before, ...feathersPipeline, ...after])
|
|
140
|
+
return model.aggregate([...before, ...feathersPipeline, ...after], params.mongodb)
|
|
136
141
|
}
|
|
137
142
|
|
|
138
143
|
makeFeathersPipeline(params: ServiceParams) {
|
|
139
144
|
const { filters, query } = this.filterQuery(null, params)
|
|
140
145
|
const pipeline: Document[] = [{ $match: query }]
|
|
141
146
|
|
|
142
|
-
if (filters.$select !== undefined) {
|
|
143
|
-
pipeline.push({ $project: this.getSelect(filters.$select) })
|
|
144
|
-
}
|
|
145
|
-
|
|
146
147
|
if (filters.$sort !== undefined) {
|
|
147
148
|
pipeline.push({ $sort: filters.$sort })
|
|
148
149
|
}
|
|
149
150
|
|
|
151
|
+
if (filters.$select !== undefined) {
|
|
152
|
+
pipeline.push({ $project: this.getProjection(filters.$select) })
|
|
153
|
+
}
|
|
154
|
+
|
|
150
155
|
if (filters.$skip !== undefined) {
|
|
151
156
|
pipeline.push({ $skip: filters.$skip })
|
|
152
157
|
}
|
|
@@ -154,10 +159,14 @@ export class MongoDbAdapter<
|
|
|
154
159
|
if (filters.$limit !== undefined) {
|
|
155
160
|
pipeline.push({ $limit: filters.$limit })
|
|
156
161
|
}
|
|
162
|
+
|
|
157
163
|
return pipeline
|
|
158
164
|
}
|
|
159
165
|
|
|
160
|
-
|
|
166
|
+
getProjection(select?: string[] | { [key: string]: number }) {
|
|
167
|
+
if (!select) {
|
|
168
|
+
return undefined
|
|
169
|
+
}
|
|
161
170
|
if (Array.isArray(select)) {
|
|
162
171
|
if (!select.includes(this.id)) {
|
|
163
172
|
select = [this.id, ...select]
|
|
@@ -181,10 +190,6 @@ export class MongoDbAdapter<
|
|
|
181
190
|
return select
|
|
182
191
|
}
|
|
183
192
|
|
|
184
|
-
async _findOrGet(id: NullableAdapterId, params: ServiceParams) {
|
|
185
|
-
return id === null ? await this._find(params) : await this._get(id, params)
|
|
186
|
-
}
|
|
187
|
-
|
|
188
193
|
normalizeId<D>(id: NullableAdapterId, data: D): D {
|
|
189
194
|
if (this.id === '_id') {
|
|
190
195
|
// Default Mongo IDs cannot be updated. The Mongo library handles
|
|
@@ -201,32 +206,77 @@ export class MongoDbAdapter<
|
|
|
201
206
|
return data
|
|
202
207
|
}
|
|
203
208
|
|
|
209
|
+
async countDocuments(params: ServiceParams) {
|
|
210
|
+
const { useEstimatedDocumentCount } = this.getOptions(params)
|
|
211
|
+
const { query } = this.filterQuery(null, params)
|
|
212
|
+
|
|
213
|
+
if (params.pipeline) {
|
|
214
|
+
const aggregateParams = {
|
|
215
|
+
...params,
|
|
216
|
+
query: {
|
|
217
|
+
...params.query,
|
|
218
|
+
$select: [this.id],
|
|
219
|
+
$sort: undefined,
|
|
220
|
+
$skip: undefined,
|
|
221
|
+
$limit: undefined
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
const result = await this.aggregateRaw(aggregateParams).then((result) => result.toArray())
|
|
225
|
+
return result.length
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
const model = await this.getModel(params)
|
|
229
|
+
|
|
230
|
+
if (useEstimatedDocumentCount && typeof model.estimatedDocumentCount === 'function') {
|
|
231
|
+
return model.estimatedDocumentCount()
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return model.countDocuments(query, params.mongodb)
|
|
235
|
+
}
|
|
236
|
+
|
|
204
237
|
async _get(id: AdapterId, params: ServiceParams = {} as ServiceParams): Promise<Result> {
|
|
205
238
|
const {
|
|
206
239
|
query,
|
|
207
240
|
filters: { $select }
|
|
208
241
|
} = this.filterQuery(id, params)
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
242
|
+
|
|
243
|
+
if (params.pipeline) {
|
|
244
|
+
const aggregateParams = {
|
|
245
|
+
...params,
|
|
246
|
+
query: {
|
|
247
|
+
...params.query,
|
|
248
|
+
$limit: 1,
|
|
249
|
+
$and: (params.query.$and || []).concat({
|
|
250
|
+
[this.id]: this.getObjectId(id)
|
|
251
|
+
})
|
|
215
252
|
}
|
|
216
|
-
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
return this.aggregateRaw(aggregateParams)
|
|
256
|
+
.then((result) => result.toArray())
|
|
257
|
+
.then(([result]) => {
|
|
258
|
+
if (!result) {
|
|
259
|
+
throw new NotFound(`No record found for id '${id}'`)
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
return result
|
|
263
|
+
})
|
|
264
|
+
.catch(errorHandler)
|
|
265
|
+
}
|
|
266
|
+
|
|
217
267
|
const findOptions: FindOptions = {
|
|
218
|
-
|
|
219
|
-
...
|
|
268
|
+
projection: this.getProjection($select),
|
|
269
|
+
...params.mongodb
|
|
220
270
|
}
|
|
221
271
|
|
|
222
272
|
return this.getModel(params)
|
|
223
273
|
.then((model) => model.findOne(query, findOptions))
|
|
224
|
-
.then((
|
|
225
|
-
if (
|
|
274
|
+
.then((result) => {
|
|
275
|
+
if (!result) {
|
|
226
276
|
throw new NotFound(`No record found for id '${id}'`)
|
|
227
277
|
}
|
|
228
278
|
|
|
229
|
-
return
|
|
279
|
+
return result
|
|
230
280
|
})
|
|
231
281
|
.catch(errorHandler)
|
|
232
282
|
}
|
|
@@ -235,34 +285,40 @@ export class MongoDbAdapter<
|
|
|
235
285
|
async _find(params?: ServiceParams & { paginate: false }): Promise<Result[]>
|
|
236
286
|
async _find(params?: ServiceParams): Promise<Paginated<Result> | Result[]>
|
|
237
287
|
async _find(params: ServiceParams = {} as ServiceParams): Promise<Paginated<Result> | Result[]> {
|
|
238
|
-
const { paginate
|
|
239
|
-
const { filters
|
|
240
|
-
const
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
288
|
+
const { paginate } = this.getOptions(params)
|
|
289
|
+
const { filters } = this.filterQuery(null, params)
|
|
290
|
+
const paginationDisabled = params.paginate === false || !paginate || !paginate.default
|
|
291
|
+
|
|
292
|
+
const getData = () => {
|
|
293
|
+
const result = params.pipeline ? this.aggregateRaw(params) : this.findRaw(params)
|
|
294
|
+
return result.then((result) => result.toArray())
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
if (paginationDisabled) {
|
|
298
|
+
if (filters.$limit === 0) {
|
|
299
|
+
return [] as Result[]
|
|
300
|
+
}
|
|
301
|
+
const data = await getData()
|
|
302
|
+
return data as Result[]
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
if (filters.$limit === 0) {
|
|
306
|
+
return {
|
|
307
|
+
total: await this.countDocuments(params),
|
|
308
|
+
data: [] as Result[],
|
|
309
|
+
limit: filters.$limit,
|
|
310
|
+
skip: filters.$skip || 0
|
|
249
311
|
}
|
|
250
|
-
return Promise.resolve(0)
|
|
251
312
|
}
|
|
252
313
|
|
|
253
|
-
const [
|
|
254
|
-
useAggregation ? this.aggregateRaw(params) : this.findRaw(params),
|
|
255
|
-
countDocuments()
|
|
256
|
-
])
|
|
314
|
+
const [data, total] = await Promise.all([getData(), this.countDocuments(params)])
|
|
257
315
|
|
|
258
|
-
|
|
316
|
+
return {
|
|
259
317
|
total,
|
|
318
|
+
data: data as Result[],
|
|
260
319
|
limit: filters.$limit,
|
|
261
|
-
skip: filters.$skip || 0
|
|
262
|
-
data: filters.$limit === 0 ? [] : ((await request.toArray()) as any as Result[])
|
|
320
|
+
skip: filters.$skip || 0
|
|
263
321
|
}
|
|
264
|
-
|
|
265
|
-
return paginate && paginate.default ? page : page.data
|
|
266
322
|
}
|
|
267
323
|
|
|
268
324
|
async _create(data: Data, params?: ServiceParams): Promise<Result>
|
|
@@ -272,12 +328,14 @@ export class MongoDbAdapter<
|
|
|
272
328
|
data: Data | Data[],
|
|
273
329
|
params: ServiceParams = {} as ServiceParams
|
|
274
330
|
): Promise<Result | Result[]> {
|
|
275
|
-
|
|
331
|
+
if (Array.isArray(data) && !this.allowsMulti('create', params)) {
|
|
332
|
+
throw new MethodNotAllowed('Can not create multiple entries')
|
|
333
|
+
}
|
|
334
|
+
|
|
276
335
|
const model = await this.getModel(params)
|
|
277
336
|
const setId = (item: any) => {
|
|
278
337
|
const entry = Object.assign({}, item)
|
|
279
338
|
|
|
280
|
-
// Generate a MongoId if we use a custom id
|
|
281
339
|
if (this.id !== '_id' && typeof entry[this.id] === 'undefined') {
|
|
282
340
|
return {
|
|
283
341
|
[this.id]: new ObjectId().toHexString(),
|
|
@@ -288,17 +346,29 @@ export class MongoDbAdapter<
|
|
|
288
346
|
return entry
|
|
289
347
|
}
|
|
290
348
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
.
|
|
299
|
-
|
|
349
|
+
if (Array.isArray(data)) {
|
|
350
|
+
const created = await model.insertMany(data.map(setId), params.mongodb).catch(errorHandler)
|
|
351
|
+
return this._find({
|
|
352
|
+
...params,
|
|
353
|
+
paginate: false,
|
|
354
|
+
query: {
|
|
355
|
+
_id: { $in: Object.values(created.insertedIds) },
|
|
356
|
+
$select: params.query?.$select
|
|
357
|
+
}
|
|
358
|
+
})
|
|
359
|
+
}
|
|
300
360
|
|
|
301
|
-
|
|
361
|
+
const created = await model.insertOne(setId(data), params.mongodb).catch(errorHandler)
|
|
362
|
+
const result = await this._find({
|
|
363
|
+
...params,
|
|
364
|
+
paginate: false,
|
|
365
|
+
query: {
|
|
366
|
+
_id: created.insertedId,
|
|
367
|
+
$select: params.query?.$select,
|
|
368
|
+
$limit: 1
|
|
369
|
+
}
|
|
370
|
+
})
|
|
371
|
+
return result[0]
|
|
302
372
|
}
|
|
303
373
|
|
|
304
374
|
async _patch(id: null, data: PatchData | Partial<Result>, params?: ServiceParams): Promise<Result[]>
|
|
@@ -321,45 +391,91 @@ export class MongoDbAdapter<
|
|
|
321
391
|
const model = await this.getModel(params)
|
|
322
392
|
const {
|
|
323
393
|
query,
|
|
324
|
-
filters: { $select }
|
|
394
|
+
filters: { $sort, $select }
|
|
325
395
|
} = this.filterQuery(id, params)
|
|
326
|
-
|
|
327
|
-
const
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
396
|
+
|
|
397
|
+
const replacement = Object.keys(data).reduce(
|
|
398
|
+
(current, key) => {
|
|
399
|
+
const value = (data as any)[key]
|
|
400
|
+
|
|
401
|
+
if (key.charAt(0) !== '$') {
|
|
402
|
+
current.$set[key] = value
|
|
403
|
+
} else if (key === '$set') {
|
|
404
|
+
current.$set = {
|
|
405
|
+
...current.$set,
|
|
406
|
+
...value
|
|
407
|
+
}
|
|
408
|
+
} else {
|
|
409
|
+
current[key] = value
|
|
334
410
|
}
|
|
335
|
-
} else {
|
|
336
|
-
current[key] = value
|
|
337
|
-
}
|
|
338
411
|
|
|
339
|
-
|
|
340
|
-
}, {} as any)
|
|
341
|
-
const originalIds = await this._findOrGet(id, {
|
|
342
|
-
...params,
|
|
343
|
-
query: {
|
|
344
|
-
...query,
|
|
345
|
-
$select: [this.id]
|
|
412
|
+
return current
|
|
346
413
|
},
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
414
|
+
{ $set: {} } as any
|
|
415
|
+
)
|
|
416
|
+
|
|
417
|
+
if (id === null) {
|
|
418
|
+
const findParams = {
|
|
419
|
+
...params,
|
|
420
|
+
paginate: false,
|
|
421
|
+
query: {
|
|
422
|
+
...params.query,
|
|
423
|
+
$select: [this.id]
|
|
424
|
+
}
|
|
357
425
|
}
|
|
426
|
+
|
|
427
|
+
return this._find(findParams)
|
|
428
|
+
.then(async (result) => {
|
|
429
|
+
const idList = (result as Result[]).map((item: any) => item[this.id])
|
|
430
|
+
await model.updateMany({ [this.id]: { $in: idList } }, replacement, params.mongodb)
|
|
431
|
+
return this._find({
|
|
432
|
+
...params,
|
|
433
|
+
paginate: false,
|
|
434
|
+
query: {
|
|
435
|
+
[this.id]: { $in: idList },
|
|
436
|
+
$sort,
|
|
437
|
+
$select
|
|
438
|
+
}
|
|
439
|
+
})
|
|
440
|
+
})
|
|
441
|
+
.catch(errorHandler)
|
|
358
442
|
}
|
|
359
443
|
|
|
360
|
-
|
|
444
|
+
if (params.pipeline) {
|
|
445
|
+
const getParams = {
|
|
446
|
+
...params,
|
|
447
|
+
query: {
|
|
448
|
+
...params.query,
|
|
449
|
+
$select: [this.id]
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
return this._get(id, getParams)
|
|
454
|
+
.then(async () => {
|
|
455
|
+
await model.updateOne({ [this.id]: id }, replacement, params.mongodb)
|
|
456
|
+
return this._get(id, {
|
|
457
|
+
...params,
|
|
458
|
+
query: { $select }
|
|
459
|
+
})
|
|
460
|
+
})
|
|
461
|
+
.catch(errorHandler)
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
const updateOptions: FindOneAndUpdateOptions = {
|
|
465
|
+
projection: this.getProjection($select),
|
|
466
|
+
...(params.mongodb as FindOneAndUpdateOptions),
|
|
467
|
+
returnDocument: 'after'
|
|
468
|
+
}
|
|
361
469
|
|
|
362
|
-
return
|
|
470
|
+
return model
|
|
471
|
+
.findOneAndUpdate(query, replacement, updateOptions)
|
|
472
|
+
.then((result) => {
|
|
473
|
+
if (!result) {
|
|
474
|
+
throw new NotFound(`No record found for id '${id}'`)
|
|
475
|
+
}
|
|
476
|
+
return result as Result
|
|
477
|
+
})
|
|
478
|
+
.catch(errorHandler)
|
|
363
479
|
}
|
|
364
480
|
|
|
365
481
|
async _update(id: AdapterId, data: Data, params: ServiceParams = {} as ServiceParams): Promise<Result> {
|
|
@@ -367,13 +483,48 @@ export class MongoDbAdapter<
|
|
|
367
483
|
throw new BadRequest("You can not replace multiple instances. Did you mean 'patch'?")
|
|
368
484
|
}
|
|
369
485
|
|
|
486
|
+
const {
|
|
487
|
+
query,
|
|
488
|
+
filters: { $select }
|
|
489
|
+
} = this.filterQuery(id, params)
|
|
370
490
|
const model = await this.getModel(params)
|
|
371
|
-
const
|
|
372
|
-
|
|
491
|
+
const replacement = this.normalizeId(id, data)
|
|
492
|
+
|
|
493
|
+
if (params.pipeline) {
|
|
494
|
+
const getParams = {
|
|
495
|
+
...params,
|
|
496
|
+
query: {
|
|
497
|
+
...params.query,
|
|
498
|
+
$select: [this.id]
|
|
499
|
+
}
|
|
500
|
+
}
|
|
373
501
|
|
|
374
|
-
|
|
502
|
+
return this._get(id, getParams)
|
|
503
|
+
.then(async () => {
|
|
504
|
+
await model.replaceOne({ [this.id]: id }, replacement, params.mongodb)
|
|
505
|
+
return this._get(id, {
|
|
506
|
+
...params,
|
|
507
|
+
query: { $select }
|
|
508
|
+
})
|
|
509
|
+
})
|
|
510
|
+
.catch(errorHandler)
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
const replaceOptions: FindOneAndReplaceOptions = {
|
|
514
|
+
projection: this.getProjection($select),
|
|
515
|
+
...(params.mongodb as FindOneAndReplaceOptions),
|
|
516
|
+
returnDocument: 'after'
|
|
517
|
+
}
|
|
375
518
|
|
|
376
|
-
return
|
|
519
|
+
return model
|
|
520
|
+
.findOneAndReplace(query, replacement, replaceOptions)
|
|
521
|
+
.then((result) => {
|
|
522
|
+
if (!result) {
|
|
523
|
+
throw new NotFound(`No record found for id '${id}'`)
|
|
524
|
+
}
|
|
525
|
+
return result as Result
|
|
526
|
+
})
|
|
527
|
+
.catch(errorHandler)
|
|
377
528
|
}
|
|
378
529
|
|
|
379
530
|
async _remove(id: null, params?: ServiceParams): Promise<Result[]>
|
|
@@ -388,24 +539,43 @@ export class MongoDbAdapter<
|
|
|
388
539
|
}
|
|
389
540
|
|
|
390
541
|
const model = await this.getModel(params)
|
|
391
|
-
const {
|
|
392
|
-
query,
|
|
393
|
-
filters: { $select }
|
|
394
|
-
} = this.filterQuery(id, params)
|
|
395
|
-
const deleteOptions = { ...params.mongodb }
|
|
542
|
+
const { query } = this.filterQuery(id, params)
|
|
396
543
|
const findParams = {
|
|
397
544
|
...params,
|
|
398
|
-
paginate: false
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
545
|
+
paginate: false
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
if (id === null) {
|
|
549
|
+
return this._find(findParams)
|
|
550
|
+
.then(async (result) => {
|
|
551
|
+
const idList = (result as Result[]).map((item: any) => item[this.id])
|
|
552
|
+
await model.deleteMany({ [this.id]: { $in: idList } }, params.mongodb)
|
|
553
|
+
return result
|
|
554
|
+
})
|
|
555
|
+
.catch(errorHandler)
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
if (params.pipeline) {
|
|
559
|
+
return this._get(id, params)
|
|
560
|
+
.then(async (result) => {
|
|
561
|
+
await model.deleteOne({ [this.id]: id }, params.mongodb)
|
|
562
|
+
return result
|
|
563
|
+
})
|
|
564
|
+
.catch(errorHandler)
|
|
403
565
|
}
|
|
404
566
|
|
|
405
|
-
|
|
406
|
-
.
|
|
407
|
-
|
|
408
|
-
|
|
567
|
+
const deleteOptions: FindOneAndDeleteOptions = {
|
|
568
|
+
...(params.mongodb as FindOneAndDeleteOptions),
|
|
569
|
+
projection: this.getProjection(params.query?.$select)
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
return model
|
|
573
|
+
.findOneAndDelete(query, deleteOptions)
|
|
574
|
+
.then((result) => {
|
|
575
|
+
if (!result) {
|
|
576
|
+
throw new NotFound(`No record found for id '${id}'`)
|
|
577
|
+
}
|
|
578
|
+
return result as Result
|
|
409
579
|
})
|
|
410
580
|
.catch(errorHandler)
|
|
411
581
|
}
|
package/src/index.ts
CHANGED
|
@@ -41,6 +41,7 @@ export class MongoDBService<
|
|
|
41
41
|
return this._create(data, params)
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
+
async update(id: NullableAdapterId, data: Data, params?: ServiceParams): Promise<Result>
|
|
44
45
|
async update(id: AdapterId, data: Data, params?: ServiceParams): Promise<Result> {
|
|
45
46
|
return this._update(id, data, {
|
|
46
47
|
...params,
|