Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der $currentDate Operator legt den Wert eines Felds auf das aktuelle Datum fest, entweder als Datum oder als Zeitstempel. Dieser Operator eignet sich zum Nachverfolgen, wann Dokumente zuletzt geändert wurden oder zum Festlegen von Zeitstempeln zum Erstellen von Zeitstempeln.
Syntax
{
$currentDate: {
<field1>: <typeSpecification1>,
<field2>: <typeSpecification2>,
...
}
}
Die Parameter
| Parameter | Description |
|---|---|
field |
Der Name des Felds, das auf das aktuelle Datum festgelegt werden soll. |
typeSpecification |
Wahlfrei. Gibt den Typ des Datumswerts an. Kann (für Datumstyp) oder true für den Zeitstempeltyp sein { $type: "timestamp" } . Der Standardwert ist true (Datum). |
Examples
Betrachten Sie dieses Beispieldokument aus der Stores-Sammlung.
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"name": "Lakeshore Retail | DJ Equipment Stop - Port Cecile",
"location": {
"lat": 60.1441,
"lon": -141.5012
},
"staff": {
"totalStaff": {
"fullTime": 2,
"partTime": 0
}
},
"sales": {
"salesByCategory": [
{
"categoryName": "DJ Headphones",
"totalSales": 35921
}
],
"fullSales": 3700
},
"promotionEvents": [
{
"eventName": "Bargain Blitz Days",
"promotionalDates": {
"startDate": {
"Year": 2024,
"Month": 3,
"Day": 11
},
"endDate": {
"Year": 2024,
"Month": 2,
"Day": 18
}
},
"discounts": [
{
"categoryName": "DJ Turntables",
"discountPercentage": 18
},
{
"categoryName": "DJ Mixers",
"discountPercentage": 15
}
]
}
],
"tag": [
"#ShopLocal",
"#SeasonalSale",
"#FreeShipping",
"#MembershipDeals"
],
"company": "Lakeshore Retail",
"city": "Port Cecile",
"lastUpdated": {
"$date": "2024-12-11T10:21:58.274Z"
}
}
Beispiel 1: Festlegen des aktuellen Datums
Zum Hinzufügen eines lastUpdated Felds mit dem aktuellen Datum zu einem Speicherdokument verwenden Sie den operator $currentDate, um das Feld mit dem aktuellen Datum als Date-Objekt zu erstellen.
db.stores.updateOne(
{ "_id": "2cf3f885-9962-4b67-a172-aa9039e9ae2f" },
{
$currentDate: {
"lastUpdated": true
}
}
)
Dieser Vorgang gibt das folgende Ergebnis zurück.
{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
Beispiel 2: Festlegen des aktuellen Zeitstempels
Um ein Datumsfeld und ein Zeitstempelfeld zum Nachverfolgen von Änderungen hinzuzufügen, verwenden Sie den $currentDate-Operator mit dem Wert "true" und einem Typestamp-Wert.
db.stores.updateOne(
{ "_id": "2cf3f885-9962-4b67-a172-aa9039e9ae2f" },
{
$currentDate: {
"lastModified": true,
"lastModifiedTimestamp": { $type: "timestamp" }
}
}
)
Dieser Vorgang gibt das folgende Ergebnis zurück.
{
acknowledged: true,
insertedId: null,
matchedCount: Long("1"),
modifiedCount: Long("1"),
upsertedCount: 0
}
Beispiel 3: Aktualisieren geschachtelter Felder
Legen Sie das aktuelle Datum für geschachtelte Felder in der Dokumentstruktur fest.
db.stores.updateOne(
{ "_id": "2cf3f885-9962-4b67-a172-aa9039e9ae2f" },
{
$currentDate: {
"sales.lastSalesUpdate": true,
"staff.lastStaffUpdate": { $type: "timestamp" }
}
}
)
Dieser Vorgang gibt das folgende Ergebnis zurück.
[
{
"_id": "2cf3f885-9962-4b67-a172-aa9039e9ae2f",
"name": "First Up Consultants | Bed and Bath Center - South Amir",
"lastUpdated": ISODate("2025-02-12T10:30:45.123Z"),
"lastModified": ISODate("2025-02-12T10:30:45.123Z"),
"lastModifiedTimestamp": Timestamp(1739450445, 1),
"sales": {
"totalSales": 37701,
"lastSalesUpdate": ISODate("2025-02-12T10:30:45.123Z"),
"salesByCategory": [
{
"categoryName": "Mattress Toppers",
"totalSales": 37701
}
]
},
"staff": {
"totalStaff": {
"fullTime": 18,
"partTime": 17
},
"lastStaffUpdate": Timestamp(1739450445, 1)
}
}
]