@webda/mongo 4.0.0-beta.4 → 4.0.0-beta.6
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/lib/mongodb.service.d.ts +45 -1
- package/lib/mongodb.service.d.ts.map +1 -1
- package/lib/mongodb.service.js +196 -11
- package/lib/mongodb.service.js.map +1 -1
- package/package.json +10 -6
- package/webda.module.json +16 -4
package/lib/mongodb.service.d.ts
CHANGED
|
@@ -70,9 +70,17 @@ export declare class MongoRepository<T extends ModelClass> extends MemoryReposit
|
|
|
70
70
|
* Convert an object to the document stored in MongoDB
|
|
71
71
|
* @param item - the model instance or raw data
|
|
72
72
|
* @param key - the primary key
|
|
73
|
+
* @param fallbackType - the type to stamp when the object declares none (null: none)
|
|
73
74
|
* @returns the document
|
|
74
75
|
*/
|
|
75
|
-
protected toDocument(item: any, key: string): any;
|
|
76
|
+
protected toDocument(item: any, key: string, fallbackType?: string | undefined): any;
|
|
77
|
+
/**
|
|
78
|
+
* The type an object written by the application declares: the `__type` its document was read with
|
|
79
|
+
* (non-enumerable, set by {@link fromDocument}), else the identifier of its class. Plain data declares none.
|
|
80
|
+
* @param item - the object
|
|
81
|
+
* @returns the model identifier, undefined for plain data
|
|
82
|
+
*/
|
|
83
|
+
protected declaredType(item: any): string | undefined;
|
|
76
84
|
/**
|
|
77
85
|
* Convert a stored document into a model instance
|
|
78
86
|
* @param doc - the MongoDB document
|
|
@@ -114,11 +122,47 @@ export declare class MongoRepository<T extends ModelClass> extends MemoryReposit
|
|
|
114
122
|
* @returns the class filter or undefined if the model has no metadata
|
|
115
123
|
*/
|
|
116
124
|
protected getClassFilter(): any;
|
|
125
|
+
/**
|
|
126
|
+
* Translate a WebdaQL filter to a MongoDB filter restricted to this model
|
|
127
|
+
* @param expression - the WebdaQL expression
|
|
128
|
+
* @returns the MongoDB filter
|
|
129
|
+
*/
|
|
130
|
+
protected buildFilter(expression: WebdaQL.Expression): any;
|
|
131
|
+
/**
|
|
132
|
+
* Translate an aggregation to a MongoDB pipeline
|
|
133
|
+
*
|
|
134
|
+
* Group keys live in `_id.gN` and are flattened by executeAggregation, since MongoDB
|
|
135
|
+
* cannot project dotted output names. The query is validated again first: paths and aliases become
|
|
136
|
+
* field references and output names.
|
|
137
|
+
* @param query - the aggregation
|
|
138
|
+
* @returns the pipeline
|
|
139
|
+
*/
|
|
140
|
+
buildAggregationPipeline(query: WebdaQL.AggregationQuery): any[];
|
|
141
|
+
/** @override — MongoDB aggregation pipeline */
|
|
142
|
+
protected executeAggregation(query: WebdaQL.AggregationQuery): Promise<WebdaQL.AggregationResult<any>>;
|
|
117
143
|
/** @override — translate the WebdaQL query to a MongoDB find */
|
|
118
144
|
query(query: string | any): Promise<{
|
|
119
145
|
results: InstanceType<T>[];
|
|
120
146
|
continuationToken?: string;
|
|
121
147
|
}>;
|
|
148
|
+
/**
|
|
149
|
+
* MongoDB filter of the objects a statement targets: its WHERE and the class filter, restricted to the first
|
|
150
|
+
* LIMIT documents when the statement has a LIMIT (MongoDB bulk writes have none)
|
|
151
|
+
* @param statement - the parsed statement
|
|
152
|
+
* @returns the filter, undefined when LIMIT is 0
|
|
153
|
+
*/
|
|
154
|
+
protected getStatementFilter(statement: WebdaQL.Query): Promise<any | undefined>;
|
|
155
|
+
/**
|
|
156
|
+
* Delete in bulk with one `deleteMany`: no per-object event (see `Repository.deleteMany`)
|
|
157
|
+
* @override
|
|
158
|
+
*/
|
|
159
|
+
deleteMany(statement: string | WebdaQL.Query, params?: WebdaQL.QueryParameters): Promise<number>;
|
|
160
|
+
/**
|
|
161
|
+
* Update in bulk with one `updateMany` and `$set` (dotted targets create their parents): no per-object event
|
|
162
|
+
* (see `Repository.updateMany`)
|
|
163
|
+
* @override
|
|
164
|
+
*/
|
|
165
|
+
updateMany(statement: string | WebdaQL.Query, params?: WebdaQL.QueryParameters): Promise<number>;
|
|
122
166
|
/**
|
|
123
167
|
* Name of the underlying collection, used in errors
|
|
124
168
|
* @returns the collection name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.service.d.ts","sourceRoot":"","sources":["../src/mongodb.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,gBAAgB,EAChB,KAAK,EAEL,eAAe,EAGhB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3E;;GAEG;AACH,qBAAa,eAAgB,SAAQ,eAAe;IAClD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IACd;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC;IAE5B;;;;OAIG;IACH,IAAI,CAAC,MAAM,GAAE,GAAQ,GAAG,IAAI,CAQ3B;CACF;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,UAAU,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"mongodb.service.d.ts","sourceRoot":"","sources":["../src/mongodb.service.ts"],"names":[],"mappings":"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"}
|
package/lib/mongodb.service.js
CHANGED
|
@@ -92,9 +92,10 @@ export function mapExpression(expression) {
|
|
|
92
92
|
const attribute = expression.attribute.join(".");
|
|
93
93
|
switch (expression.operator) {
|
|
94
94
|
case "=":
|
|
95
|
-
case "CONTAINS":
|
|
96
|
-
// MongoDB use same syntax for exact match or contains for an array
|
|
97
95
|
return { [attribute]: expression.value };
|
|
96
|
+
case "CONTAINS":
|
|
97
|
+
// Only an array holding the value (a plain `{a: v}` would also match a scalar equal to v)
|
|
98
|
+
return { [attribute]: { $elemMatch: { $eq: expression.value } } };
|
|
98
99
|
case "<":
|
|
99
100
|
return { [attribute]: { $lt: expression.value } };
|
|
100
101
|
case ">":
|
|
@@ -142,17 +143,37 @@ export class MongoRepository extends MemoryRepository {
|
|
|
142
143
|
* Convert an object to the document stored in MongoDB
|
|
143
144
|
* @param item - the model instance or raw data
|
|
144
145
|
* @param key - the primary key
|
|
146
|
+
* @param fallbackType - the type to stamp when the object declares none (null: none)
|
|
145
147
|
* @returns the document
|
|
146
148
|
*/
|
|
147
|
-
toDocument(item, key) {
|
|
149
|
+
toDocument(item, key, fallbackType = this.model.Metadata?.Identifier) {
|
|
148
150
|
const doc = JSON.parse(JSON.stringify(item));
|
|
149
151
|
doc._id = key;
|
|
150
|
-
|
|
152
|
+
// An enumerable `__type` key of plain data is never trusted
|
|
153
|
+
delete doc.__type;
|
|
154
|
+
const type = this.declaredType(item) ?? fallbackType;
|
|
151
155
|
if (type) {
|
|
152
156
|
doc.__type = type;
|
|
153
157
|
}
|
|
154
158
|
return doc;
|
|
155
159
|
}
|
|
160
|
+
/**
|
|
161
|
+
* The type an object written by the application declares: the `__type` its document was read with
|
|
162
|
+
* (non-enumerable, set by {@link fromDocument}), else the identifier of its class. Plain data declares none.
|
|
163
|
+
* @param item - the object
|
|
164
|
+
* @returns the model identifier, undefined for plain data
|
|
165
|
+
*/
|
|
166
|
+
declaredType(item) {
|
|
167
|
+
if (!item || typeof item !== "object") {
|
|
168
|
+
return undefined;
|
|
169
|
+
}
|
|
170
|
+
const own = Object.getOwnPropertyDescriptor(item, "__type");
|
|
171
|
+
if (own && !own.enumerable && typeof own.value === "string") {
|
|
172
|
+
return own.value;
|
|
173
|
+
}
|
|
174
|
+
const clazz = Object.getPrototypeOf(item)?.constructor;
|
|
175
|
+
return clazz && clazz !== Object ? clazz.Metadata?.Identifier : undefined;
|
|
176
|
+
}
|
|
156
177
|
/**
|
|
157
178
|
* Convert a stored document into a model instance
|
|
158
179
|
* @param doc - the MongoDB document
|
|
@@ -220,7 +241,21 @@ export class MongoRepository extends MemoryRepository {
|
|
|
220
241
|
/** @override */
|
|
221
242
|
async update(data, conditionField, condition) {
|
|
222
243
|
const key = this.getPrimaryKey(data).toString();
|
|
223
|
-
const
|
|
244
|
+
const collection = await this.getCollection();
|
|
245
|
+
const filter = this.getFilter(key, conditionField, condition);
|
|
246
|
+
let res;
|
|
247
|
+
if (this.declaredType(data)) {
|
|
248
|
+
res = await collection.replaceOne(filter, this.toDocument(data, key));
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
// Plain data (ModelRef.update) keeps the stored type, in one atomic write: a write through a parent
|
|
252
|
+
// repository never re-types a subclass document. `$literal` keeps `$`-prefixed values as data.
|
|
253
|
+
res = await collection.updateOne(filter, [
|
|
254
|
+
{
|
|
255
|
+
$replaceWith: { $mergeObjects: [{ $literal: this.toDocument(data, key, null) }, { __type: "$__type" }] }
|
|
256
|
+
}
|
|
257
|
+
]);
|
|
258
|
+
}
|
|
224
259
|
if (res.matchedCount === 0) {
|
|
225
260
|
throw new UpdateConditionFailError(key, conditionField, condition);
|
|
226
261
|
}
|
|
@@ -352,9 +387,114 @@ export class MongoRepository extends MemoryRepository {
|
|
|
352
387
|
}
|
|
353
388
|
return { $or: [{ __type: { $in: ids } }, { __type: { $exists: false } }] };
|
|
354
389
|
}
|
|
390
|
+
/**
|
|
391
|
+
* Translate a WebdaQL filter to a MongoDB filter restricted to this model
|
|
392
|
+
* @param expression - the WebdaQL expression
|
|
393
|
+
* @returns the MongoDB filter
|
|
394
|
+
*/
|
|
395
|
+
buildFilter(expression) {
|
|
396
|
+
const filter = mapExpression(expression);
|
|
397
|
+
const classFilter = this.getClassFilter();
|
|
398
|
+
if (classFilter) {
|
|
399
|
+
return Object.keys(filter).length ? { $and: [classFilter, filter] } : classFilter;
|
|
400
|
+
}
|
|
401
|
+
return filter;
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Translate an aggregation to a MongoDB pipeline
|
|
405
|
+
*
|
|
406
|
+
* Group keys live in `_id.gN` and are flattened by executeAggregation, since MongoDB
|
|
407
|
+
* cannot project dotted output names. The query is validated again first: paths and aliases become
|
|
408
|
+
* field references and output names.
|
|
409
|
+
* @param query - the aggregation
|
|
410
|
+
* @returns the pipeline
|
|
411
|
+
*/
|
|
412
|
+
buildAggregationPipeline(query) {
|
|
413
|
+
WebdaQL.validateAggregation(query);
|
|
414
|
+
const id = {};
|
|
415
|
+
const sortKeys = {};
|
|
416
|
+
query.groupBy.forEach((path, i) => {
|
|
417
|
+
// $ifNull: a missing field and an explicit null always share one group
|
|
418
|
+
id[`g${i}`] = { $ifNull: [`$${path}`, null] };
|
|
419
|
+
sortKeys[path] = `_id.g${i}`;
|
|
420
|
+
});
|
|
421
|
+
const group = { _id: query.groupBy.length ? id : null };
|
|
422
|
+
const sizes = {};
|
|
423
|
+
for (const [alias, metric] of Object.entries(query.metrics)) {
|
|
424
|
+
const field = `$${metric.field}`;
|
|
425
|
+
sortKeys[alias] = alias;
|
|
426
|
+
switch (metric.fn) {
|
|
427
|
+
case "COUNT":
|
|
428
|
+
group[alias] = metric.field
|
|
429
|
+
? { $sum: { $cond: [{ $ne: [{ $ifNull: [field, null] }, null] }, 1, 0] } }
|
|
430
|
+
: { $sum: 1 };
|
|
431
|
+
break;
|
|
432
|
+
case "COUNT_DISTINCT":
|
|
433
|
+
group[alias] = { $addToSet: field };
|
|
434
|
+
sizes[alias] = { $size: { $filter: { input: `$${alias}`, cond: { $ne: ["$$this", null] } } } };
|
|
435
|
+
break;
|
|
436
|
+
case "SUM":
|
|
437
|
+
group[alias] = { $sum: field };
|
|
438
|
+
break;
|
|
439
|
+
case "AVG":
|
|
440
|
+
group[alias] = { $avg: field };
|
|
441
|
+
break;
|
|
442
|
+
case "MIN":
|
|
443
|
+
group[alias] = { $min: field };
|
|
444
|
+
break;
|
|
445
|
+
case "MAX":
|
|
446
|
+
group[alias] = { $max: field };
|
|
447
|
+
break;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
const pipeline = [{ $match: this.buildFilter(query.filter) }, { $group: group }];
|
|
451
|
+
if (Object.keys(sizes).length) {
|
|
452
|
+
pipeline.push({ $addFields: sizes });
|
|
453
|
+
}
|
|
454
|
+
const sort = {};
|
|
455
|
+
for (const order of query.orderBy ?? []) {
|
|
456
|
+
sort[sortKeys[order.key]] = order.direction === "ASC" ? 1 : -1;
|
|
457
|
+
}
|
|
458
|
+
if (!Object.keys(sort).length && query.groupBy.length) {
|
|
459
|
+
query.groupBy.forEach((_, i) => (sort[`_id.g${i}`] = 1));
|
|
460
|
+
}
|
|
461
|
+
if (Object.keys(sort).length) {
|
|
462
|
+
pipeline.push({ $sort: sort });
|
|
463
|
+
}
|
|
464
|
+
const limit = query.limit ?? (query.groupBy.length ? this.aggregationOptions.maxGroups + 1 : undefined);
|
|
465
|
+
if (limit) {
|
|
466
|
+
pipeline.push({ $limit: limit });
|
|
467
|
+
}
|
|
468
|
+
return pipeline;
|
|
469
|
+
}
|
|
470
|
+
/** @override — MongoDB aggregation pipeline */
|
|
471
|
+
async executeAggregation(query) {
|
|
472
|
+
const docs = await (await this.getCollection())
|
|
473
|
+
.aggregate(this.buildAggregationPipeline(query), { allowDiskUse: true })
|
|
474
|
+
.toArray();
|
|
475
|
+
if (query.limit === undefined && docs.length > this.aggregationOptions.maxGroups) {
|
|
476
|
+
throw new WebdaQL.AggregationError("AGGREGATION_TOO_MANY_GROUPS", `Aggregation exceeds ${this.aggregationOptions.maxGroups} groups`);
|
|
477
|
+
}
|
|
478
|
+
const rows = docs.map(doc => {
|
|
479
|
+
const row = {};
|
|
480
|
+
query.groupBy.forEach((path, i) => (row[path] = doc._id?.[`g${i}`] ?? null));
|
|
481
|
+
for (const [alias, metric] of Object.entries(query.metrics)) {
|
|
482
|
+
row[alias] = doc[alias] ?? (metric.fn === "SUM" || metric.fn.startsWith("COUNT") ? 0 : null);
|
|
483
|
+
}
|
|
484
|
+
return row;
|
|
485
|
+
});
|
|
486
|
+
if (!rows.length && !query.groupBy.length) {
|
|
487
|
+
// MongoDB returns no document for an empty global aggregation, SQL and the spec return one row
|
|
488
|
+
return { rows: new WebdaQL.Aggregator(query).rows(), native: true };
|
|
489
|
+
}
|
|
490
|
+
return { rows, native: true };
|
|
491
|
+
}
|
|
355
492
|
/** @override — translate the WebdaQL query to a MongoDB find */
|
|
356
493
|
async query(query) {
|
|
357
|
-
|
|
494
|
+
// A query object built or changed by code goes back through the grammar: no forged operator reaches MongoDB
|
|
495
|
+
const parsed = typeof query === "string" ? WebdaQL.parse(query) : WebdaQL.normalizeQuery(query);
|
|
496
|
+
// DELETE / UPDATE go to deleteMany / updateMany; a field list is not a projection here
|
|
497
|
+
WebdaQL.assertFilterQuery(parsed);
|
|
358
498
|
let offset = parseInt(parsed.continuationToken);
|
|
359
499
|
if (isNaN(offset)) {
|
|
360
500
|
offset = 0;
|
|
@@ -364,11 +504,7 @@ export class MongoRepository extends MemoryRepository {
|
|
|
364
504
|
sort[order.field] = order.direction === "ASC" ? 1 : -1;
|
|
365
505
|
}
|
|
366
506
|
const limit = parsed.limit || 1000;
|
|
367
|
-
|
|
368
|
-
const classFilter = this.getClassFilter();
|
|
369
|
-
if (classFilter) {
|
|
370
|
-
filter = Object.keys(filter).length ? { $and: [classFilter, filter] } : classFilter;
|
|
371
|
-
}
|
|
507
|
+
const filter = this.buildFilter(parsed.filter);
|
|
372
508
|
const docs = await (await this.getCollection()).find(filter).sort(sort).skip(offset).limit(limit).toArray();
|
|
373
509
|
const results = docs.map(doc => this.fromDocument(doc));
|
|
374
510
|
return {
|
|
@@ -376,6 +512,55 @@ export class MongoRepository extends MemoryRepository {
|
|
|
376
512
|
continuationToken: results.length >= limit ? (offset + limit).toString() : undefined
|
|
377
513
|
};
|
|
378
514
|
}
|
|
515
|
+
/**
|
|
516
|
+
* MongoDB filter of the objects a statement targets: its WHERE and the class filter, restricted to the first
|
|
517
|
+
* LIMIT documents when the statement has a LIMIT (MongoDB bulk writes have none)
|
|
518
|
+
* @param statement - the parsed statement
|
|
519
|
+
* @returns the filter, undefined when LIMIT is 0
|
|
520
|
+
*/
|
|
521
|
+
async getStatementFilter(statement) {
|
|
522
|
+
const filter = this.buildFilter(statement.filter);
|
|
523
|
+
if (statement.limit === undefined) {
|
|
524
|
+
return filter;
|
|
525
|
+
}
|
|
526
|
+
if (statement.limit <= 0) {
|
|
527
|
+
return undefined;
|
|
528
|
+
}
|
|
529
|
+
// Collect the keys first: the update cannot meet an object twice, and LIMIT is honoured
|
|
530
|
+
const ids = (await (await this.getCollection())
|
|
531
|
+
.find(filter, { projection: { _id: 1 } })
|
|
532
|
+
.limit(statement.limit)
|
|
533
|
+
.toArray()).map(doc => doc._id);
|
|
534
|
+
// The WHERE is kept: a document that stopped matching since the find is left alone
|
|
535
|
+
return { $and: [filter, { _id: { $in: ids } }] };
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Delete in bulk with one `deleteMany`: no per-object event (see `Repository.deleteMany`)
|
|
539
|
+
* @override
|
|
540
|
+
*/
|
|
541
|
+
async deleteMany(statement, params) {
|
|
542
|
+
const parsed = await this.parseStatement("DELETE", statement, params);
|
|
543
|
+
const filter = await this.getStatementFilter(parsed);
|
|
544
|
+
if (!filter)
|
|
545
|
+
return 0;
|
|
546
|
+
return (await (await this.getCollection()).deleteMany(filter)).deletedCount;
|
|
547
|
+
}
|
|
548
|
+
/**
|
|
549
|
+
* Update in bulk with one `updateMany` and `$set` (dotted targets create their parents): no per-object event
|
|
550
|
+
* (see `Repository.updateMany`)
|
|
551
|
+
* @override
|
|
552
|
+
*/
|
|
553
|
+
async updateMany(statement, params) {
|
|
554
|
+
const parsed = await this.parseStatement("UPDATE", statement, params);
|
|
555
|
+
const filter = await this.getStatementFilter(parsed);
|
|
556
|
+
if (!filter)
|
|
557
|
+
return 0;
|
|
558
|
+
const $set = {};
|
|
559
|
+
for (const { field, value } of parsed.assignments) {
|
|
560
|
+
$set[field] = value;
|
|
561
|
+
}
|
|
562
|
+
return (await (await this.getCollection()).updateMany(filter, { $set })).matchedCount;
|
|
563
|
+
}
|
|
379
564
|
/**
|
|
380
565
|
* Name of the underlying collection, used in errors
|
|
381
566
|
* @returns the collection name
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongodb.service.js","sourceRoot":"","sources":["../src/mongodb.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mongodb.service.js","sourceRoot":"","sources":["../src/mongodb.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,19 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webda/mongo",
|
|
3
|
-
"version": "4.0.0-beta.
|
|
3
|
+
"version": "4.0.0-beta.6",
|
|
4
4
|
"description": "Implements Mongo DB on webda",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mongo",
|
|
7
7
|
"webda"
|
|
8
8
|
],
|
|
9
9
|
"author": "Remi Cattiau <remi@cattiau.com>",
|
|
10
|
-
"repository":
|
|
10
|
+
"repository": {
|
|
11
|
+
"type": "git",
|
|
12
|
+
"url": "git+https://github.com/loopingz/webda.io.git",
|
|
13
|
+
"directory": "packages/mongodb"
|
|
14
|
+
},
|
|
11
15
|
"main": "lib/index.js",
|
|
12
16
|
"typings": "lib/index.d.ts",
|
|
13
17
|
"dependencies": {
|
|
14
18
|
"mongodb": "^7.1.1",
|
|
15
|
-
"@webda/core": "4.0.0-beta.
|
|
16
|
-
"@webda/ql": "4.0.0-beta.
|
|
19
|
+
"@webda/core": "4.0.0-beta.6",
|
|
20
|
+
"@webda/ql": "4.0.0-beta.6"
|
|
17
21
|
},
|
|
18
22
|
"files": [
|
|
19
23
|
"lib",
|
|
@@ -36,8 +40,8 @@
|
|
|
36
40
|
"typescript": "7.1.0-dev.20260929.1",
|
|
37
41
|
"vite": "^6.0.0",
|
|
38
42
|
"vitest": "^4.1.2",
|
|
39
|
-
"@webda/compiler": "^4.0.0-beta.
|
|
40
|
-
"@webda/test": "4.0.0-beta.
|
|
43
|
+
"@webda/compiler": "^4.0.0-beta.6",
|
|
44
|
+
"@webda/test": "4.0.0-beta.6"
|
|
41
45
|
},
|
|
42
46
|
"type": "module",
|
|
43
47
|
"engines": {
|
package/webda.module.json
CHANGED
|
@@ -252,6 +252,16 @@
|
|
|
252
252
|
},
|
|
253
253
|
"description": "MongoDB store parameters",
|
|
254
254
|
"properties": {
|
|
255
|
+
"aggregationFallback": {
|
|
256
|
+
"default": "warn",
|
|
257
|
+
"description": "What to do when an aggregation on this store cannot run natively and must\nstream every matching object through memory",
|
|
258
|
+
"enum": [
|
|
259
|
+
"allow",
|
|
260
|
+
"warn",
|
|
261
|
+
"deny"
|
|
262
|
+
],
|
|
263
|
+
"type": "string"
|
|
264
|
+
},
|
|
255
265
|
"collection": {
|
|
256
266
|
"description": "Which collection to use\n\nAll the models managed by the store share this collection, the `__type`\nfield is used to differentiate them",
|
|
257
267
|
"type": "string"
|
|
@@ -275,6 +285,12 @@
|
|
|
275
285
|
"description": "If set, Store will ignore the __type",
|
|
276
286
|
"type": "boolean"
|
|
277
287
|
},
|
|
288
|
+
"maxGroups": {
|
|
289
|
+
"default": 10000,
|
|
290
|
+
"description": "Maximum number of groups an aggregation may produce without LIMIT (or in memory)",
|
|
291
|
+
"minimum": 1,
|
|
292
|
+
"type": "number"
|
|
293
|
+
},
|
|
278
294
|
"modelAliases": {
|
|
279
295
|
"$ref": "#/definitions/modelAliases",
|
|
280
296
|
"description": "Model Aliases to allow easier rename of Model"
|
|
@@ -338,10 +354,6 @@
|
|
|
338
354
|
"additionalProperties": false,
|
|
339
355
|
"description": "Represent a file to store",
|
|
340
356
|
"properties": {
|
|
341
|
-
"challenge": {
|
|
342
|
-
"description": "Will be computed by the service\n\nhash of the content prefixed by 'WEBDA'",
|
|
343
|
-
"type": "string"
|
|
344
|
-
},
|
|
345
357
|
"hash": {
|
|
346
358
|
"description": "Will be computed by the service\n\nhash of the content",
|
|
347
359
|
"type": "string"
|