blixify-server 0.3.21 → 0.3.22
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mongoWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/mongoWrapper.ts"],"names":[],"mappings":"AASA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAGrD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AA6JD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,SAAM;IACb,KAAK,SAAM;IACX,WAAW,EAAE,GAAG,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAM;IAC7B,KAAK,EAAE,GAAG,CAAC;IAEX,YAAY,QAAS,GAAG,aAEtB;gBAGA,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACzC,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI;IAgB3D,UAAU,SAAU,GAAG,SAIrB;IAEF,aAAa,YACF,GAAG,QACN,QAAQ,GAAG,QAAQ,GAAG,QAAQ,OAC/B,GAAG,UACA;QACN,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,GAAG,CAAC,EAAE,GAAG,CAAC;KACX,mBA4DD;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBAqF5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAkDtC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG;;mBAuCjC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAqKtC;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAqGtC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBAsJ5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAwCtC;IAEF,mBAAmB,CAAC,GAAG,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"mongoWrapper.d.ts","sourceRoot":"","sources":["../../src/apis/mongoWrapper.ts"],"names":[],"mappings":"AASA,OAAO,cAAc,MAAM,yBAAyB,CAAC;AAGrD,MAAM,WAAW,UAAU;IACzB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AA6JD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,EAAE,GAAG,CAAM;IAClB,UAAU,SAAM;IAChB,MAAM,UAAS;IACf,MAAM,EAAE,cAAc,CAQpB;IACF,GAAG,EAAE,UAAU,CAAC;IAChB,OAAO,SAAM;IACb,KAAK,SAAM;IACX,WAAW,EAAE,GAAG,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,CAAM;IAC7B,KAAK,EAAE,GAAG,CAAC;IAEX,YAAY,QAAS,GAAG,aAEtB;gBAGA,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,OAAO,EACf,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,OAAO,EACrD,GAAG,EAAE,UAAU,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACzC,aAAa,CAAC,EAAE,MAAM,EAAE,EACxB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,IAAI;IAgB3D,UAAU,SAAU,GAAG,SAIrB;IAEF,aAAa,YACF,GAAG,QACN,QAAQ,GAAG,QAAQ,GAAG,QAAQ,OAC/B,GAAG,UACA;QACN,GAAG,CAAC,EAAE,GAAG,CAAC;QACV,GAAG,CAAC,EAAE,GAAG,CAAC;KACX,mBA4DD;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBAqF5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAkDtC;IAEF,OAAO,QAAe,GAAG,OAAO,GAAG;;mBAuCjC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAqKtC;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAqGtC;IAEF,eAAe,QACR,GAAG,OACH,GAAG,yBACc,GAAG,EAAE,KAAK,QAAQ,GAAG,CAAC;;mBAsJ5C;IAEF,UAAU,QACH,GAAG,OACH,GAAG,qBACU,GAAG,KAAK,QAAQ,GAAG,CAAC;;mBAwCtC;IAEF,mBAAmB,CAAC,GAAG,EAAE,GAAG;IAgR5B,QAAQ,QAAe,GAAG,OAAO,GAAG;;;;;mBAwQlC;IAEF,IAAI,YAgFF;CACH"}
|
|
@@ -1011,6 +1011,7 @@ class MongoWrapper {
|
|
|
1011
1011
|
return stageKey !== "$skip" && stageKey !== "$limit";
|
|
1012
1012
|
});
|
|
1013
1013
|
countPipeline.push({ $count: "total" });
|
|
1014
|
+
console.log(pipeline);
|
|
1014
1015
|
const [dataList, countResult] = yield Promise.all([
|
|
1015
1016
|
mongoCollection.aggregate(pipeline).toArray(),
|
|
1016
1017
|
mongoCollection.aggregate(countPipeline).toArray(),
|
|
@@ -1137,7 +1138,7 @@ class MongoWrapper {
|
|
|
1137
1138
|
const pipelineList = [];
|
|
1138
1139
|
const addedForeignLookups = new Map();
|
|
1139
1140
|
const addedSpaceReferences = new Set();
|
|
1140
|
-
const { query, sort, cursor, limit, stopLimit, pipeline, uniqueLabel } = req.body;
|
|
1141
|
+
const { query, sort, cursor, limit, stopLimit, pipeline, uniqueLabel, sortBeforeFilter, } = req.body;
|
|
1141
1142
|
try {
|
|
1142
1143
|
if (Array.isArray(pipeline) && pipeline.length > 0) {
|
|
1143
1144
|
pipeline.forEach((link) => {
|
|
@@ -1273,12 +1274,8 @@ class MongoWrapper {
|
|
|
1273
1274
|
}
|
|
1274
1275
|
});
|
|
1275
1276
|
}
|
|
1276
|
-
|
|
1277
|
-
const filter = handleParseQueryFilter(query);
|
|
1278
|
-
pipelineList.push({ $match: filter });
|
|
1279
|
-
}
|
|
1277
|
+
const sortStage = { $sort: {} };
|
|
1280
1278
|
if (sort) {
|
|
1281
|
-
const sortStage = { $sort: {} };
|
|
1282
1279
|
const sortItems = Array.isArray(JSON.parse(JSON.stringify(sort)))
|
|
1283
1280
|
? sort
|
|
1284
1281
|
: [sort];
|
|
@@ -1287,20 +1284,44 @@ class MongoWrapper {
|
|
|
1287
1284
|
sortStage.$sort[sortItem.sortId] = sortItem.type === "asc" ? 1 : -1;
|
|
1288
1285
|
}
|
|
1289
1286
|
});
|
|
1287
|
+
}
|
|
1288
|
+
// INFO: If data is sorted then only filter, group must be before filter as well
|
|
1289
|
+
if (sortBeforeFilter) {
|
|
1290
1290
|
if (Object.keys(sortStage.$sort).length > 0) {
|
|
1291
1291
|
pipelineList.push(sortStage);
|
|
1292
1292
|
}
|
|
1293
|
+
if (uniqueLabel) {
|
|
1294
|
+
pipelineList.push({
|
|
1295
|
+
$group: {
|
|
1296
|
+
_id: `$${uniqueLabel}`,
|
|
1297
|
+
doc: { $first: "$$ROOT" },
|
|
1298
|
+
},
|
|
1299
|
+
});
|
|
1300
|
+
pipelineList.push({
|
|
1301
|
+
$replaceRoot: { newRoot: "$doc" },
|
|
1302
|
+
});
|
|
1303
|
+
}
|
|
1293
1304
|
}
|
|
1294
|
-
if (
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1305
|
+
if (query && query.length > 0) {
|
|
1306
|
+
const filter = handleParseQueryFilter(query);
|
|
1307
|
+
pipelineList.push({ $match: filter });
|
|
1308
|
+
}
|
|
1309
|
+
// INFO: Default for mongoDB: filter then only sort
|
|
1310
|
+
if (!sortBeforeFilter) {
|
|
1311
|
+
if (Object.keys(sortStage.$sort).length > 0) {
|
|
1312
|
+
pipelineList.push(sortStage);
|
|
1313
|
+
}
|
|
1314
|
+
if (uniqueLabel) {
|
|
1315
|
+
pipelineList.push({
|
|
1316
|
+
$group: {
|
|
1317
|
+
_id: `$${uniqueLabel}`,
|
|
1318
|
+
doc: { $first: "$$ROOT" },
|
|
1319
|
+
},
|
|
1320
|
+
});
|
|
1321
|
+
pipelineList.push({
|
|
1322
|
+
$replaceRoot: { newRoot: "$doc" },
|
|
1323
|
+
});
|
|
1324
|
+
}
|
|
1304
1325
|
}
|
|
1305
1326
|
if (req.body.attributeIds && req.body.attributeIds.length > 0) {
|
|
1306
1327
|
const projection = { _id: 1 };
|