MongoDB biedt verschillende opties om datumdelen uit een datum te extraheren.
Dit artikel presenteert 3 manieren om het weekgedeelte van een datum in MongoDB te retourneren.
Voorbeeldgegevens
Stel dat we een verzameling hebben met de naam cats
met de volgende documenten:
{ "_id" : 1, "name" : "Scratch", "born" : ISODate("2021-01-03T23:30:15.123Z") } { "_id" : 2, "name" : "Meow", "born" : ISODate("2019-12-08T04:00:12Z") } { "_id" : 3, "name" : "Fluffy", "born" : ISODate("2020-09-24T10:30:00Z") }
De volgende voorbeelden demonstreren verschillende opties voor het retourneren van het weekgedeelte van de born
veld van die documenten.
De $week
Operator
De $week
operator retourneert de week van het jaar voor een datum als een getal tussen 0 en 53.
We kunnen daarom de volgende code uitvoeren om de week van de born
. te retourneren veld in bovenstaand document.
db.cats.aggregate(
[
{
$project:
{
_id: 0,
birthWeek: { $week: "$born" }
}
}
]
)
Resultaat:
{ "birthWeek" : 1 } { "birthWeek" : 49 } { "birthWeek" : 38 }
U kunt ook de tijdzone specificeren bij gebruik van de $week
exploitant.
Zie MongoDB $week
voor meer informatie en voorbeelden.
De $dateToString
Operator
De $dateToString
operator converteert een datumobject naar een string volgens een door de gebruiker gespecificeerd formaat. De gebruiker kan daarom specificeren dat alleen het weekgedeelte wordt geretourneerd indien nodig.
Er zijn formaatspecificaties voor elk datumgedeelte. Met betrekking tot het weekgedeelte van de datum, de %U
formaatspecificatie retourneert de week van het jaar, en de %V
formaatspecificatie retourneert de week van het jaar in ISO 8601-formaat.
Voorbeeld:
db.cats.aggregate(
[
{
$project: {
_id: 0,
birthWeek: { $dateToString: { format: "%U", date: "$born" } },
birthWeekISO: { $dateToString: { format: "%V", date: "$born" } }
}
}
]
)
Resultaat:
{ "birthWeek" : "01", "birthWeekISO" : "53" } { "birthWeek" : "49", "birthWeekISO" : "49" } { "birthWeek" : "38", "birthWeekISO" : "39" }
Zie MongoDB $dateToString
voor meer informatie en voorbeelden.
Zie ook MongoDB $dateToString
Formaatspecificaties voor een lijst met formaatspecificaties die met deze operator kunnen worden gebruikt.
De $isoWeek
Operator
Als u de week in ISO 8601-indeling wilt retourneren, gebruikt u $isoWeek
. Het ISO 8601-jaar begint met de maandag van week 1 en eindigt met de zondag van de laatste week.
Voorbeeld:
db.cats.aggregate(
[
{
$project:
{
_id: 0,
birthIsoWeek: { $isoWeek: "$born" }
}
}
]
)
Resultaat:
{ "birthIsoWeek" : 53 } { "birthIsoWeek" : 49 } { "birthIsoWeek" : 39 }
Dit resultaat is anders dan toen we de $week
. gebruikten telefoniste.
Hier is een voorbeeld dat het verschil laat zien.
db.cats.aggregate(
[
{
$project:
{
_id: 0,
birthWeek: { $week: "$born" },
birthIsoWeek: { $isoWeek: "$born" }
}
}
]
)
Resultaat:
{ "birthWeek" : 1, "birthIsoWeek" : 53 } { "birthWeek" : 49, "birthIsoWeek" : 49 } { "birthWeek" : 38, "birthIsoWeek" : 39 }