Per i principianti di MongoDB è spesso fonte di confusione memorizzare data e ora. Alcune persone decidono di usare i timestamp MA c’è un modo molto migliore per memorizzare data e ora in MongoDB.
Il database non è destinato alla lettura umana, ma è ottimo per memorizzare è un formato che è conveniente e in forma leggibile dall’uomo.
Lasciate che vi dica che migrare il database da un formato di data ad un altro è un incubo. Se l’applicazione è complessa si verificheranno anche brutti bug. Quindi è importante pianificare perfettamente la gestione della data-ora nella vostra applicazione.
Ho migrato un’applicazione Node.js da timestamps e mi ci sono voluti circa 10 giorni per trovare e risolvere i bug (soprattutto conversioni di date).
Il miglior formato per memorizzare data e ora
Il miglior formato per memorizzare data e ora in MongoDB è javascript nativo Date() o formato data ISO in quanto lo converte internamente in un oggetto Data nativo BSON.
I documenti ufficiali di MongoDB dicono dell’oggetto data nativo BSON:
BSON Date è un intero a 64 bit che rappresenta il numero di millisecondi dall’epoca Unix (1 gennaio 1970). Questo si traduce in un intervallo di date rappresentabile di circa 290 milioni di anni nel passato e nel futuro.
A prima vista, la definizione può sembrare un timestamp, ma BSON Timestamps e BSON Date sono diversi.
MongoDB raccomanda ufficialmente di memorizzare la data nell’oggetto BSON Date ed evitare i timestamp se possibile, in quanto è per uso interno.
Oggetto MongoDB BSON Date vs Timestamp
All’inizio, la definizione dell’oggetto data nativo BSON può sembrare un timestamp. Ma sono diversi.
I timestamp in MongoDB sono principalmente per l’uso interno e sono valori a 64 bit.
I 32 bit più significativi sono time_t che è secondi dall’epoca UNIX. I 32 bit meno significativi sono ordinali incrementali per le operazioni.
L’oggetto BSON Date millisecondi passato dal 1 gennaio 1970 (UNIX epoch) con l’intervallo di date di 290 milioni di anni passati e futuri.
Esempi di inserimento di date in MongoDB
Nei casi del mondo reale, usiamo principalmente MongoDB in MERN Stack. Se questo è il vostro caso, allora potete facilmente inserire un nuovo Date() nel database.
Ecco la sintassi della shell MongoDB per inserire la data.
Oppure possiamo anche usare.
I vantaggi di usare l’oggetto data nativo è che supporta molti metodi utili per la conversione che sono molto utili e riducono la complessità.