MongoDB $ DatetrUnc

MongoDB $ DatetrUnc

MongoDB fornisce l'operatore aggregato $ datetrunc per troncare i dati in base alla data data. L'operatore $ datetrunc prende solo il valore della data singola per troncarlo in formato ISO. L'argomento "Data" di $ DateTRunc prende i valori della data insieme all'unità di tempo. L'operatore $ datetrunc deve richiedere questi input per troncare la data. Inoltre, possiamo anche usare argomenti opzionali come il fuso orario, la cassonetta e il inizio di settimana per abbassare il confine della data in un intervallo di tempo. L'operatore di $ DatetrUnc divide il tempo in intervalli di tempo in crisi nell'unità temporale scelta per il calcolo.

Come utilizzare l'operatore $ DatetrUnc in MongoDB?

L'operatore $ datetrunc viene utilizzato in MongoDB per troncare la data data. Qui, stiamo lavorando con la collezione "fiori" i cui documenti sono utilizzati dall'operatore $ datetrunc per la dimostrazione. Per questo, dobbiamo aggiungere i documenti all'interno della collezione "fiori" utilizzando il metodo InsertMany (). L'output dopo l'esecuzione del comando di inserimento di documenti mostra che i documenti sono ora archiviati all'interno della collezione "Flowers".

db.Fiori.InsertMany ([
_id: 0, tipo: "Rose", Order: New Date ("2023-03-23T15: 06: 20Z"), Qty: 100,
_id: 1, tipo: "Lilly", Order: New Date ("2021-07-19T12: 11: 10z"), Qty: 150,
_id: 2, tipo: "tulip", ordine: nuova data ("2022-12-12t16: 14: 30z"), Qty: 99,
_id: 3, tipo: "Whiterose", Order: New Date ("2023-08-13t05: 10: 20Z"), Qty: 500,
_id: 4, tipo: "lavanda", ordine: nuova data ("2020-01-01t19: 30: 10Z"), Qty: 200,
_id: 5, tipo: "girasole", ordine: nuova data ("2021-03-19t12: 12: 12Z"), Qty: 50
])

Si noti che esiste un campo all'interno del documento impostato con i valori della data. Stiamo per troncare queste date usando l'operatore $ datetrunc di MongoDB.

WriteConcerNerrors: [],
Insertedids: [
indice: 0, _id: 0,
Index: 1, _id: 1,
indice: 2, _id: 2,
indice: 3, _id: 3,
indice: 4, _id: 4,
Index: 5, _id: 5
",
NINSERTED: 5,
Nupserted: 0,
Nmatched: 0,
NMODIFICATO: 0,
Nremoved: 0,
Userted: []

Esempio n. 1: utilizzando l'operatore $ DatetrUnc per troncare la data in MongoDB

Qui, distribuiremo l'operatore $ datetrunc che recupera semplicemente la data troncata della data specificata. Abbiamo dato una domanda sulla shell Mongodb in cui viene impiegato un metodo aggregato per eseguire gli altri operatori. Abbiamo chiamato il metodo $ Project per includere i campi "_id" e "_order" dal documento abbinato. Quindi, abbiamo impostato un altro campo "TruncatedResult" che ha visualizzato i risultati dell'operatore $ DatetrUnc. Abbiamo definito l'operatore $ datetrunc che viene approvato con il parametro "data" e specificato con il campo "$ ordine" con valori di data. Il parametro $ date dell'operatore $ datetrunc ha troncato la data con UTC. Successivamente, abbiamo superato il parametro "unità" in cui il tempo è espresso come una stringa "giorno". Il valore del "giorno" indica che è isolato per l'inizio della giornata che viene restituito da $ datetrunc in data.

db.Fiori.aggregato ([

$ Progetto:
_id: 1,
Ordine: 1,
TruncatedDate:
$ datetrunc:
Data: "$ ordine", unità: "giorno"




])

L'output dall'operatore di $ Datetrunc di cui sopra mostrava le date troncate di tutto il campo del documento "ordine" nel campo troncato.

[

_id: 0,
Ordine: ISODATE ("2023-03-23T15: 06: 20.000Z "),
TruncatedDate: isodate ("2023-03-23T00: 00: 00.000Z ")
,

_id: 1,
Ordine: ISODATE ("2021-07-19T12: 11: 10.000Z "),
TruncatedDate: isodate ("2021-07-19T00: 00: 00.000Z ")
,

_id: 2,
Ordine: isodate ("2022-12-12t16: 14: 30.000Z "),
TruncatedDate: isodate ("2022-12-12t00: 00: 00.000Z ")
,

_id: 3,
Ordine: ISODATE ("2023-08-13T05: 10: 20.000Z "),
TruncatedDate: isodate ("2023-08-13t00: 00: 00.000Z ")
,

_id: 4,
Ordine: ISODATE ("2020-01-01T19: 30: 10.000Z "),
TruncatedDate: isodate ("2020-01-01T00: 00: 00.000Z ")
,

_id: 5,
Ordine: ISODATE ("2021-03-19T12: 12: 12.000Z "),
TruncatedDate: isodate ("2021-03-19T00: 00: 00.000Z ")

"

Esempio n. 2: utilizzando l'operatore $ datetrunc con l'argomento binsize per troncare la data in MongoDB

L'argomento binsize opzionale dell'operatore $ datetrunc è un valore temporale espresso come espressione numerica. L'espressione numerica deve essere un intero diverso da zero positivo. Quando l'argomento binsize e unità sono entrambi usati insieme, definiscono il periodo per la valutazione dell'operatore $ datetrunc. Abbiamo preso il documento il cui campo "tipo" valore "whiterose" che è abbinato alla fase di $ match qui.

Successivamente, l'operatore $ DatetrUnc nell'operatore $ Project è stato definito per troncare la data utilizzando gli input forniti. $ DateTrunc prima prende la "data" di input in cui viene dato il campo "$ order" in quanto contiene i valori della data. Quindi, abbiamo impostato l'ingresso "unità" con il tempo "ora" e l'ingresso "binsize" con il valore numerico "2".

db.Fiori.aggregato ([
$ match: "type": "whiterose",

$ Progetto:
_id: 1,
Ordine: 1,
TruncatedResult:
$ datetrunc:
Data: "$ order", unità: "ora", binsize: 2




])

Il tempo "unità" è "ora" e il "binsize" ha un valore di "2". Quindi, il tempo tra la data troncata resi dall'operatore $ datetrunc e la data dell'ordine è di due ore.

[

_id: 3,
Ordine: ISODATE ("2023-08-13T05: 10: 20.000Z "),
TruncatedResult: ISODATE ("2023-08-13T04: 00: 00.000Z ")

"

Esempio n. 3: utilizzando l'operatore $ datetrunc con l'argomento StartOfWeek per troncare la data in MongoDB

Abbiamo un altro argomento di opzione "StartOfWeek" dell'operatore $ DatetrUnc che specifica l'inizio della settimana. L'argomento "StartOfWeek" viene eseguito solo quando "unità" è la settimana. Qui, acquisiamo quei documenti dall'operatore $ Match che l'operatore $ NIN non ha selezionato nell'espressione. Quindi, abbiamo distribuito l'operatore $ DatetrUnc nel campo della fase del progetto $ "Truncdate". Gli argomenti sono passati all'interno dell'operatore $ datetrunc per ridurre la data. L'argomento opzionale "StartOfWeek" è anche ambientato all'interno dell'operatore $ DatetrUnc con la settimana "Mercoledì". L'operatore di $ DatetrUnc tronca il campo "Ordine" a un periodo di binsize "1" e unità "Settimana" nel fuso a tempo UTC con mercoledì come StartOfWeek.

db.Fiori.aggregato ([
$ match: "_id": $ nin: [1, 3, 5],

$ Progetto:
_id: 1,
Ordine: 1,
truncdate:
$ datetrunc:
Data: "$ order", unità: "settimana", binsize: 1,
Timezone: "UTC", StartOfWeek: "Mercoledì"




])

I risultati dell'operatore $ DatetrUnc sono generati con le date troncate in un giorno "StartOfWeek", nonché i valori della data effettiva.

[

_id: 0,
Ordine: ISODATE ("2023-03-23T15: 06: 20.000Z "),
Truncdate: isodate ("2023-03-22t00: 00: 00.000Z ")
,

_id: 2,
Ordine: isodate ("2022-12-12t16: 14: 30.000Z "),
Truncdate: isodate ("2022-12-07T00: 00: 00.000Z ")
,

_id: 4,
Ordine: ISODATE ("2020-01-01T19: 30: 10.000Z "),
Truncdate: isodate ("2020-01-01T00: 00: 00.000Z ")

"

Esempio n. 4: utilizzando l'operatore $ datetrunc per restituire null in MongoDB

L'operatore $ datetrunc restituisce anche il valore null in un caso in cui "StartOfWeek" inserisce il campo che è vuoto o assegnato a NULL e quando l'argomento dell'unità ha il valore impostato come "settimana" e StartOfWeek non è specificato o ha un null valore. Consideriamo questa affermazione con lo script di esempio di MongoDB. Abbiamo una nuova inclusione del campo "TruncatedOutput" nella fase del progetto $ in cui abbiamo effettuato l'operatore $ datetrunc. L'operatore $ DatetrUnc prende la "data" input con il campo "ordine", l'unità come una settimana e leccine "2" di un fuso orario "America/Los_angeles". Si noti che non abbiamo superato l'operatore $ DateTrunc con l'argomento "StartOfWeek" poiché la settimana è assegnata al parametro "unità".

db.Fiori.aggregato ([

$ Progetto:
_id: 1,
Ordine: 1,
TruncatedOutput:
$ datetrunc:
Data: "$ orderdate", unità: "settimana", binsize: 2,
Timezone: "America/Los_angeles"




])

Lì, abbiamo ottenuto il risultato nullo nel campo "TruncatedOutput" perché non abbiamo inserito l'argomento "StartOfWeek" nell'operatore $ DatetrUnc anche se l'unità è una settimana.

[

_id: 0,
Ordine: ISODATE ("2023-03-23T15: 06: 20.000Z "),
TruncatedOutput: null
,

_id: 1,
Ordine: ISODATE ("2021-07-19T12: 11: 10.000Z "),
TruncatedOutput: null
,

_id: 2,
Ordine: isodate ("2022-12-12t16: 14: 30.000Z "),
TruncatedOutput: null
,

_id: 3,
Ordine: ISODATE ("2023-08-13T05: 10: 20.000Z "),
TruncatedOutput: null
,

_id: 4,
Ordine: ISODATE ("2020-01-01T19: 30: 10.000Z "),
TruncatedOutput: null
,

_id: 5,
Ordine: ISODATE ("2021-03-19T12: 12: 12.000Z "),
TruncatedOutput: null

"

Esempio n. 5: utilizzando l'operatore $ datetrunc per troncare la data all'interno dell'operatore di $ Group in MongoDB

Abbiamo utilizzato l'operatore $ datetrunc nella fase $ a gironi di MongoDB che tronca la data all'interno della chiave del gruppo e ottiene i risultati della somma del campo specificato. Abbiamo distribuito la fase a gironi $ e fornito una chiave di gruppo "_id" in cui è stato istituito il nuovo campo "truncdate" per eseguire l'operazione $ datetrunc. All'operatore $ DatetrUnc, abbiamo inserito la "data" come campo "ordine" con il tempo di unità "mese" e la cassonetta di "5". Successivamente, abbiamo impostato un altro campo "addquantity" in cui l'operatore $ sum è assegnato con il campo $ qty per l'operazione di addizione.

db.Fiori.aggregato ([

$ gruppo:
_id:
DatetrUnc:
$ datetrunc:
Data: "$ ordine", unità: "mese", binsize: 5


,
Addquantity: $ sum: "$ qty"


])

La data del campo "Ordine" viene troncata a cinque mesi utilizzando l'operatore $ DatetrUnc in una fase a gironi $ e il totale dei valori di quantità viene restituito anche nell'output.

[

_id: DatetrUnc: ISODATE ("2020-01-01T00: 00: 00.000Z "),
Addquantity: 200
,

_id: DatetrUnc: ISODATE ("2020-11-01T00: 00: 00.000Z "),
ADDQUANTITY: 50
,

_id: DatetrUnc: ISODATE ("2022-12-01T00: 00: 00.000Z "),
Addquantity: 199
,

_id: DatetrUnc: ISODATE ("2021-04-01T00: 00: 00.000Z "),
ADDQUANTITY: 150
,

_id: DatetrUnc: ISODATE ("2023-05-01T00: 00: 00.000Z "),
Addquantity: 500

"

Conclusione

Abbiamo coperto un operatore MongoDB $ datetrunc che funziona con la data per troncarli. Abbiamo esplorato diversi argomenti dell'operatore $ datetrunc con esempi. L'operatore $ DatetrUnc si occupa solo dei documenti sul campo della data nella raccolta di MongoDB. L'operatore $ datetrunc viene utilizzato qui con l'argomento "binsize" e l'argomento "startafweek" che sono facoltativi ma svolgono un ruolo importante mentre troncano le date in mongodb.