63 lines
1.3 KiB
JavaScript
Executable File
63 lines
1.3 KiB
JavaScript
Executable File
const mongoose = require('mongoose');
|
|
const { Schema } = mongoose;
|
|
|
|
mongoose.Promise = global.Promise;
|
|
mongoose.level = "F";
|
|
|
|
|
|
/**
|
|
* @typedef {Object} T_Web_Argomenti
|
|
* @property {bigint} Id
|
|
* @property {number} IdArgomento
|
|
* @property {string} Descrizione
|
|
* @property {Date} DataOra
|
|
* @property {boolean} Enabled
|
|
* @property {boolean} EnabledAlFresco
|
|
*/
|
|
|
|
const T_Web_ArgomentiSchema = new Schema({
|
|
IdArgomento: Number,
|
|
Descrizione: { type: String },
|
|
DataOra: Date,
|
|
Enabled: Boolean,
|
|
EnabledAlFresco: Boolean
|
|
}, { collection: 't_web_argomentis' });
|
|
|
|
const T_Web_Argomenti = module.exports = mongoose.model('T_Web_Argomenti', T_Web_ArgomentiSchema);
|
|
|
|
|
|
module.exports.findAllIdApp = async function () {
|
|
const myfind = {};
|
|
|
|
const myquery = [
|
|
{
|
|
$sort: { IdTipologia: 1, DataOra: -1 } // ordina per ID e DataOra decrescente
|
|
},
|
|
{
|
|
$group: {
|
|
_id: "$IdTipologia",
|
|
IdTipologia: { $first: "$IdTipologia" },
|
|
Descrizione: { $first: "$Descrizione" },
|
|
DataOra: { $first: "$DataOra" },
|
|
// aggiungi altri campi se servono
|
|
}
|
|
},
|
|
{
|
|
$sort: { IdTipologia: 1 } // opzionale, per ordinare il risultato
|
|
},
|
|
{
|
|
$project: {
|
|
_id: 0,
|
|
IdTipologia: 1,
|
|
Descrizione: 1
|
|
}
|
|
},
|
|
|
|
];
|
|
|
|
const rec = await T_Web_Argomenti.aggregate(myquery);
|
|
return rec;
|
|
};
|
|
|
|
|