2015-04-22 17 views
6

Sto usando sequelize come mio ORM back-end. Ora vorrei fare un po 'di operazioni su un appuntamento.Sequelize Dove istruzione con data

Altro Spicemente voglio ottenere tutti i dati in cui una data è da oggi e 7 giorni indietro.

Il problema è che la documentazione non specifica quali operazioni si può fare su Datatypes.DATE

Qualcuno mi può punto nella giusta direzione?

+3

Quindi hai provato $ lt: (nuovo Data()) e $ gt: (...) sostituisci ... con il tempo ora - 7 giorni – Molda

risposta

6

Proprio come Molda dice, è possibile utilizzare $gt, $lt, $gte o $lte con una data:

model.findAll({ 
    where: { 
    start_datetime: { 
     $gte: moment().subtract(7, 'days').toDate() 
    } 
    } 
}) 
4

ho dovuto importare i simboli operatori di sequelize e utilizzare in questo modo.

const { Op } = require('sequelize') 

model.findAll({ 
    where: { 
    start_datetime: { 
     [Op.gte]: moment().subtract(7, 'days').toDate() 
    } 
    } 
}) 

Secondo la documentazione, per motivi di sicurezza questo è considerata best practice.

Vedere http://docs.sequelizejs.com/manual/tutorial/querying.html per ulteriori informazioni.

L'utilizzo di Sequenza senza alias migliora la sicurezza. Alcuni framework analizzano automaticamente l'input dell'utente in oggetti js e se non si riesce a disinfettare l'input con , potrebbe essere possibile iniettare un oggetto con gli operatori di stringa in Sequenza.

(...)

Per maggiore sicurezza è altamente consigliato utilizzare Sequelize.Op e non dipende da alcun alias stringa a tutti. È possibile limitare l'alias che l'applicazione avrà bisogno impostando l'opzione operatoriAliases, ricordarsi di disinfettare l'input dell'utente specialmente quando li si passa direttamente a metodi Sequenza.

+0

Benvenuto in Stack Overflow! Per migliorare ulteriormente la qualità della risposta, tieni presente che i collegamenti ad altri siti Web possono non essere disponibili, pertanto ti consigliamo vivamente di copiare le informazioni pertinenti dalla documentazione esterna come citazione nel corpo della risposta. – Pac0

Problemi correlati