MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB $aktuellesDatum

In MongoDB das $currentDate Operator setzt den Wert eines Feldes auf das aktuelle Datum.

Es kann entweder als Datum eingestellt werden oder ein Zeitstempel Typ. Der Standardwert ist Datum .

$currentDate ist ein Update -Operator und kann nur beim Aktualisieren von Dokumenten verwendet werden, nicht beim Einfügen (obwohl er bei Upsert-Operationen verwendet werden kann).

Beispiel

Angenommen, wir haben eine Sammlung namens dogs mit folgendem Dokument:

{
	"_id" : 1,
	"name" : "Wag",
	"goodDog" : true,
	"dateModified" : ISODate("2020-01-01T00:00:00Z")
}

Und wir wollen eine Änderung am Dokument vornehmen. Wenn wir die Änderung vornehmen, müssen wir dateModified aktualisieren Feld auf das Datum der Änderung.

Daher können wir das $currentDate verwenden Operator, um das Datum auf das aktuelle Datum einzustellen. Wir können so etwas tun:

db.dogs.update( 
  { _id: 1 }, 
  {
    $currentDate: {
      dateModified: true
    },
    $set: {
      goodDog: false
    }
  }
)

Hier verwenden wir dateModified: true um das Datum mit Datum einzustellen Typ (dies ist eine Kurzform, um es als Datum festzulegen Typ).

Wir können das Ergebnis überprüfen, indem wir uns die Sammlung/das Dokument erneut ansehen:

db.dogs.findOne()

Ergebnis:

{
	"_id" : 1,
	"name" : "Wag",
	"goodDog" : false,
	"dateModified" : ISODate("2021-01-16T04:17:41.206Z")
}

Wir können sehen, dass dateModified Feld wurde auf das aktuelle Datum aktualisiert (d. h. das Datum/die Uhrzeit, zu der ich die Aktualisierung durchgeführt habe). Der goodDog Feld wurde ebenfalls wie angegeben aktualisiert.

Zeitstempel

Standardmäßig $currentDate verwendet das Datum Typ. Alternativ können Sie den Typ auch in einem Dokument angeben. Daher können Sie {$type: timestamp} verwenden sodass das Datum auf einen Zeitstempel aktualisiert wird BSON-Typ.

Beispiel:

db.dogs.update( 
  { _id: 1 }, 
  {
    $currentDate: {
      dateModified: { $type: "timestamp" }
    },
    $set: {
      goodDog: true
    }
  }
)

In diesem Fall haben wir ein Dokument bereitgestellt, das den Zeitstempel angibt Typ.

Sie können diese Methode auch für das Datum verwenden Typ (oder verwenden Sie die Kurzschriftmethode, wie im vorherigen Beispiel gezeigt).

Prüfen Sie die Sammlung:

db.dogs.findOne()

Ergebnis:

{
	"_id" : 1,
	"name" : "Wag",
	"goodDog" : true,
	"dateModified" : Timestamp(1610771023, 1)
}