- Codice internazionale numero + Country
This commit is contained in:
@@ -1106,6 +1106,56 @@ module.exports = {
|
||||
return (myapp) ? myapp.telegram_key : '';
|
||||
},
|
||||
|
||||
getLookup: function(params, num, pass_proj) {
|
||||
const query = []
|
||||
|
||||
if (!params)
|
||||
return;
|
||||
|
||||
let mylkLF = params.lk_LF;
|
||||
if (params.af_objId_tab) {
|
||||
const myobj = {}
|
||||
myobj['myId' + num] = {'$toObjectId': '$' + params.lk_LF};
|
||||
query.push(
|
||||
{'$addFields': myobj},
|
||||
);
|
||||
mylkLF = 'myId' + num;
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
if (params.lk_tab) {
|
||||
let proj = params.lk_proj
|
||||
if (!!pass_proj) {
|
||||
proj = pass_proj
|
||||
}
|
||||
query.push(
|
||||
{
|
||||
$lookup: {
|
||||
from: params.lk_tab,
|
||||
localField: mylkLF, // field in my collection
|
||||
foreignField: params.lk_FF, // field in the 'from' collection
|
||||
as: params.lk_as,
|
||||
},
|
||||
},
|
||||
{
|
||||
$replaceRoot: {
|
||||
newRoot: {
|
||||
$mergeObjects: [
|
||||
{
|
||||
$arrayElemAt: [
|
||||
'$' + params.lk_as, 0],
|
||||
}, '$$ROOT'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{$project: proj},
|
||||
);
|
||||
}
|
||||
|
||||
return query;
|
||||
},
|
||||
|
||||
getQueryTable: function(idapp, params) {
|
||||
|
||||
if (typeof params.startRow !== 'number') {
|
||||
@@ -1114,7 +1164,14 @@ module.exports = {
|
||||
throw new Error('endRow must be number');
|
||||
}
|
||||
|
||||
let newvers = true;
|
||||
|
||||
if (params.lk_LF)
|
||||
newvers = false;
|
||||
|
||||
let query = [];
|
||||
|
||||
|
||||
if (params.filter && params.fieldsearch) {
|
||||
|
||||
let myregexp = {};
|
||||
@@ -1285,38 +1342,30 @@ module.exports = {
|
||||
if (numrowend < 0)
|
||||
numrowend = 1;
|
||||
|
||||
let mylkLF = params.lk_LF;
|
||||
if (params.af_objId_tab) {
|
||||
query.push(
|
||||
{'$addFields': {'myId': {'$toObjectId': '$' + params.lk_LF}}},
|
||||
);
|
||||
mylkLF = 'myId';
|
||||
|
||||
if (newvers) {
|
||||
// NUOVA VERSIONE
|
||||
let proj = params.lookup2 ? params.lookup2.lk_proj : null;
|
||||
|
||||
const q1 = this.getLookup(params.lookup1, 1, proj);
|
||||
if (q1) query = [...query, ...q1]
|
||||
|
||||
const q2 = this.getLookup(params.lookup2, 2, proj);
|
||||
if (q2) query = [...query, ...q2];
|
||||
|
||||
const q3 = this.getLookup(params.lookup3, 3, proj);
|
||||
if (q3) query = [...query, ...q3];
|
||||
|
||||
if (params.filtersearch2.length > 0) {
|
||||
query.push({$match: {$and: params.filtersearch2}});
|
||||
}
|
||||
|
||||
} else {
|
||||
// VECCHIA VERSIONE
|
||||
const q1 = this.getLookup(params, 1);
|
||||
if (q1) query = [...query, ...q1]
|
||||
}
|
||||
|
||||
if (params.lk_tab) {
|
||||
query.push(
|
||||
{
|
||||
$lookup: {
|
||||
from: params.lk_tab,
|
||||
localField: mylkLF, // field in my collection
|
||||
foreignField: params.lk_FF, // field in the 'from' collection
|
||||
as: params.lk_as,
|
||||
},
|
||||
},
|
||||
{
|
||||
$replaceRoot: {
|
||||
newRoot: {
|
||||
$mergeObjects: [
|
||||
{
|
||||
$arrayElemAt: [
|
||||
'$' + params.lk_as, 0],
|
||||
}, '$$ROOT'],
|
||||
},
|
||||
},
|
||||
},
|
||||
{$project: params.lk_proj},
|
||||
);
|
||||
}
|
||||
|
||||
query.push(
|
||||
{
|
||||
@@ -1347,6 +1396,7 @@ module.exports = {
|
||||
let query = this.getQueryTable(idapp, params);
|
||||
|
||||
try {
|
||||
// console.log('query', query);
|
||||
const [ris] = await mythistable.aggregate(query);
|
||||
|
||||
if (ris) {
|
||||
|
||||
Reference in New Issue
Block a user